0 | module Text.Markdown.Lexer
7 | import Text.Markdown.Errors
8 | import Text.Markdown.String
9 | import public Text.Markdown.Tokens
14 | markdownTokenMap : TokenMap MarkdownToken
15 | markdownTokenMap = toTokenMap $
16 | [ (horizontalRules, MdHorizontalRules)
17 | , (blankLines, BlankLine)
18 | , (code, MdCodeBlock)
20 | , (headingSym, HeadingSym)
24 | , (uListSepSym, UListSepSym)
25 | , (uListSym, UListSym)
26 | , (italicsSym, ItalicsSym)
27 | , (boldSym, BoldSym)
28 | , (imageStart, ImageStart)
29 | , (openingBracket, OpeningBracket)
30 | , (closingBracket, ClosingBracket)
31 | , (openingParenthesis, OpeningParenthesis)
32 | , (closingParenthesis, ClosingParenthesis)
33 | , (htmlCloseTag, HtmlCloseTag)
34 | , (htmlOpenTag, HtmlOpenTag)
35 | , (newline, MdNewLine)
41 | lexMarkdown : String -> Either MdError (List (WithBounds MarkdownToken))
43 | case lex markdownTokenMap str of
44 | (tokens, line, col, "") => Right tokens
45 | (_, line, col, remain) => Left $
MkMdError
49 | "cannot lex: \{remain}"