commit 1c12e12887ccb316fb6f4ba0bb33fcccfa9d4e46
parent 7ba40ebc9640541cba8b29eab8ee5358c67ba09f
Author: Robert Russell <robert@rr3.xyz>
Date: Tue, 27 Aug 2024 15:08:19 -0700
Fix incomplete matches
Diffstat:
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