From fdb9070e99045c0e44b07df2d1a591fa5396d13c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Wed, 24 Sep 2025 18:35:15 +0800 Subject: [PATCH] fix(lexer): handle crlf in newline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Do we support windows 🤔 --- src/Lexer.hs | 2 +- test/Spec.hs | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Lexer.hs b/src/Lexer.hs index e12324b..87f0ee0 100644 --- a/src/Lexer.hs +++ b/src/Lexer.hs @@ -152,7 +152,7 @@ delimitedSymmetric :: Parser a -> Token -> Token -> Parser [LocatedToken] delimitedSymmetric s t1 t2 = delimited s s t1 t2 eol :: Parser () -eol = void "\n" <|> Parsec.eof +eol = void "\n" <|> void "\r\n" <|> Parsec.eof header1 :: Lexer header1 = delimitedMaybe (void $ "= ") eol (Header One) Nothing diff --git a/test/Spec.hs b/test/Spec.hs index 0a7653d..fb9d8b2 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -107,11 +107,15 @@ maths = do ] escaping :: Expectation -escaping = +escaping = do "\\(" `shouldLexTo` [ (1, 1, Escape) , (1, 2, Token "(") ] + "\\(\r\n" + `shouldLexTo` [ (1, 1, Escape) + , (1, 2, Token "(") + ] unicode :: Expectation unicode =