11module Parser (parseMarkdown , isTableLine ) where
22
3+ import Control.Monad (guard )
34import Crypto.Hash (Digest , MD5 , hash )
45import Data.Char (isAlpha , isAlphaNum , isDigit , isSpace )
56import Data.List (groupBy )
@@ -8,11 +9,10 @@ import Data.Text (Text, break)
89import qualified Data.Text as T
910import Data.Text.Encoding (encodeUtf8 )
1011import Types
11- ( MDElement (.. ),
12+ ( LabReportInfo (.. ),
13+ MDElement (.. ),
1214 TableAlignment (.. ),
13- LabReportInfo (.. ),
1415 )
15- import Control.Monad (guard )
1616
1717data ListContext = ListContext
1818 { indentLevel :: Int ,
@@ -129,7 +129,7 @@ parseLines acc (line : lines)
129129 | isLabReportLine line =
130130 case parseLabReport line of
131131 Just labReport -> processBlock (reverse acc) ++ [labReport] ++ parseLines [] lines
132- Nothing -> parseLines (line: acc) lines
132+ Nothing -> parseLines (line : acc) lines
133133 | isListLine line =
134134 let (listItems, rest) = extractListItems (line : lines )
135135 parsedLists = parseNestedLists listItems
@@ -566,13 +566,15 @@ parseLabReport line = do
566566 Just studentsStr -> Just $ map T. strip $ T. splitOn (T. pack " ;" ) studentsStr
567567 Nothing -> Nothing
568568
569- return $ LabReport LabReportInfo
570- { university = head parts
571- , labName = parts !! 1
572- , discipline = parts !! 2
573- , groupName = parts !! 3
574- , students = students
575- , teacher = parts !! 5
576- , city = parts !! 6
577- , year = parts !! 7
578- }
569+ return $
570+ LabReport
571+ LabReportInfo
572+ { university = head parts,
573+ labName = parts !! 1 ,
574+ discipline = parts !! 2 ,
575+ groupName = parts !! 3 ,
576+ students = students,
577+ teacher = parts !! 5 ,
578+ city = parts !! 6 ,
579+ year = parts !! 7
580+ }
0 commit comments