From c299af1c0601a76f2166fae1b0efca957e66b320 Mon Sep 17 00:00:00 2001 From: Igor Ranieri Date: Sun, 21 Sep 2025 09:54:45 +0200 Subject: [PATCH] Hspec error for lexer --- test/Spec.hs | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/test/Spec.hs b/test/Spec.hs index dfd0d6b..2721680 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -3,16 +3,15 @@ import Test.Hspec -import Data.String (IsString (..)) -import Data.Text (Text) -import Text.Parsec.Pos - -import Control.Monad (zipWithM_) import Identifier (Identifier) import Lexer import Parser import Types +import Data.String (IsString (..)) +import Data.Text (Text) +import Text.Parsec.Pos + shouldParseTo :: Text -> DocMarkup mod Identifier -> Expectation shouldParseTo input ast = parseText input `shouldBe` ast @@ -38,11 +37,6 @@ shouldLexTo :: String -> [(Int, Int, Token)] -> Expectation shouldLexTo input expected = case lexer input of Right tokens -> do - length tokens `shouldBe` length expected - zipWithM_ checkToken tokens expected + let actual = map (\(pos, tok) -> (sourceLine pos, sourceColumn pos, tok)) tokens + actual `shouldBe` expected Left err -> expectationFailure $ "Parse error: " <> show err - where - checkToken (pos, tok) (line, col, expectedTok) = do - tok `shouldBe` expectedTok - sourceLine pos `shouldBe` line - sourceColumn pos `shouldBe` col