fix(lexer): handle crlf in newline

Do we support windows 🤔
This commit is contained in:
Primrose 2025-09-24 18:35:15 +08:00
parent 00a6e11f67
commit 678158d614
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
2 changed files with 6 additions and 2 deletions

View file

@ -152,7 +152,7 @@ delimitedSymmetric :: Parser a -> Token -> Token -> Parser [LocatedToken]
delimitedSymmetric s t1 t2 = delimited s s t1 t2 delimitedSymmetric s t1 t2 = delimited s s t1 t2
eol :: Parser () eol :: Parser ()
eol = void "\n" <|> Parsec.eof eol = void "\n" <|> void "\r\n" <|> Parsec.eof
header1 :: Lexer header1 :: Lexer
header1 = delimitedMaybe (void $ "= ") eol (Header One) Nothing header1 = delimitedMaybe (void $ "= ") eol (Header One) Nothing

View file

@ -106,11 +106,15 @@ maths = do
] ]
escaping :: Expectation escaping :: Expectation
escaping = escaping = do
"\\(" "\\("
`shouldLexTo` [ (1, 1, Escape) `shouldLexTo` [ (1, 1, Escape)
, (1, 2, Token "(") , (1, 2, Token "(")
] ]
"\\(\r\n"
`shouldLexTo` [ (1, 1, Escape)
, (1, 2, Token "(")
]
unicode :: Expectation unicode :: Expectation
unicode = unicode =