summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Parser.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-10-10 18:43:13 -0600
committerJosh Rahm <joshuarahm@gmail.com>2024-10-10 18:43:13 -0600
commitcef70019330bb482a1418c026c57045ed731d51b (patch)
treef6c568e644df202b8b87e8967698a98776183912 /src/Language/Fiddle/Parser.hs
parentc2f195a23bdb0d0dc876cc548d4c3157534082c6 (diff)
downloadfiddle-cef70019330bb482a1418c026c57045ed731d51b.tar.gz
fiddle-cef70019330bb482a1418c026c57045ed731d51b.tar.bz2
fiddle-cef70019330bb482a1418c026c57045ed731d51b.zip
Change Witness to be a GADT.
This makes is much simpler to represent. Surprised I missed this ability.
Diffstat (limited to 'src/Language/Fiddle/Parser.hs')
-rw-r--r--src/Language/Fiddle/Parser.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Language/Fiddle/Parser.hs b/src/Language/Fiddle/Parser.hs
index ef40cc9..b3eed63 100644
--- a/src/Language/Fiddle/Parser.hs
+++ b/src/Language/Fiddle/Parser.hs
@@ -140,7 +140,7 @@ fiddleDeclP = do
PackageDecl (pure ())
<$> name
<*> defer body packageBodyP
- KWUsing -> UsingDecl (Witness ()) <$> name
+ KWUsing -> UsingDecl Witness <$> name
KWLocation -> LocationDecl (pure ()) <$> ident <*> (tok TokEq >> expressionP)
KWBits -> BitsDecl (pure ()) <$> ident <*> (tok TokColon >> bitTypeP)
KWImport -> ImportDecl <$> importStatementP
@@ -182,7 +182,7 @@ objTypeP = do
(ReferencedObjType (pure ()) <$> name)
<|> ( do
t <- bodyTypeP
- AnonymousObjType (Witness ()) <$> defer body (objTypeBodyP t)
+ AnonymousObjType Witness <$> defer body (objTypeBodyP t)
)
exprInParenP :: Pa Expression
@@ -198,7 +198,7 @@ objTypeDeclP =
withMeta $
( do
tok_ KWAssertPos
- AssertPosStatement (Witness ()) <$> exprInParenP
+ AssertPosStatement Witness <$> exprInParenP
)
<|> ( do
tok_ KWReserved
@@ -278,7 +278,7 @@ registerBitsTypeRefP = do
baseTypeRef =
withMeta $
(RegisterBitsJustBits <$> exprInParenP)
- <|> (RegisterBitsAnonymousType (Witness ()) <$> anonymousBitsTypeP)
+ <|> (RegisterBitsAnonymousType Witness <$> anonymousBitsTypeP)
<|> (RegisterBitsReference (pure ()) <$> name)
anonymousBitsTypeP :: Pa AnonymousBitsType