sparsec

simple Haskell parser combinator library
git clone git://git.rr3.xyz/sparsec
Log | Files | Refs | README | LICENSE

commit 1c12e12887ccb316fb6f4ba0bb33fcccfa9d4e46
parent 7ba40ebc9640541cba8b29eab8ee5358c67ba09f
Author: Robert Russell <robert@rr3.xyz>
Date:   Tue, 27 Aug 2024 15:08:19 -0700

Fix incomplete matches

Diffstat:
Mexample/Main.hs | 7+++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/example/Main.hs b/example/Main.hs @@ -4,8 +4,6 @@ import Control.Monad import Data.ByteString (ByteString) import Data.Char -import Debug.Trace -- TODO - import Sparsec -------------------------------------------------------------------------------- @@ -93,11 +91,13 @@ pDeclParam :: Int -> P DeclParam pDeclParam = \case 0 -> DeclParam <$> pTypeName <*> branch (pSym ":") (pKind 0 `cut` Err) (pure $ KindType Pos) 1 -> DeclParam <$> pTypeName <*> pure (KindType Pos) <|> pDelim "(" (pDeclParam 0) ")" + _ -> error "pDeclParam: invalid precedence" pDeclField :: Int -> P DeclField pDeclField = \case 0 -> DeclField <$> (pPrdCns <|> pure Prd) <*> pType 0 1 -> DeclField Prd <$> pTypeAtom <|> pDelim "(" (pDeclField 0) ")" + _ -> error "pDeclField: invalid precedence" pDeclXtor = do x <- pXtorName @@ -121,6 +121,7 @@ pKind = \case k <- pKind 1 pKindArrow k <|> pure k 1 -> KindType <$> pPosNeg <|> pDelim "(" (pKind 0) ")" + _ -> error "pKind: invalid precedence" pTypeLam = do pSym "\\" @@ -137,6 +138,7 @@ pType = \case 0 -> pTypeLam <|> pType 1 1 -> pType 2 >>= iter \a -> TypeApp a <$> pType 2 2 -> pTypeAtom <|> pDelim "(" (pType 0) ")" + _ -> error "pType: invalid precedence" pCase = do x <- pXtorName @@ -172,6 +174,7 @@ pTerm = \case 2 -> TermVar <$> pTermName <|> TermMatch <$> pDelim "{" (pList pCase) "}" <|> pDelim "(" (pTerm 0) ")" + _ -> error "pTerm: invalid precedence" pStmtCmd = do x <- pStmtName