summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Parser.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-11-27 13:16:06 -0700
committerJosh Rahm <joshuarahm@gmail.com>2024-11-27 13:16:06 -0700
commit673c99472da3de2d52bd29fec91978166f008766 (patch)
treeb51e2f7f1ff2bb935ac1461f808d67c006235821 /src/Language/Fiddle/Parser.hs
parent83cfdf2bd4f9815a67576a0e34ef8b2bf19492aa (diff)
downloadfiddle-673c99472da3de2d52bd29fec91978166f008766.tar.gz
fiddle-673c99472da3de2d52bd29fec91978166f008766.tar.bz2
fiddle-673c99472da3de2d52bd29fec91978166f008766.zip
Add metadata information to the BitsSubStructure and compile it correctly.
Diffstat (limited to 'src/Language/Fiddle/Parser.hs')
-rw-r--r--src/Language/Fiddle/Parser.hs15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/Language/Fiddle/Parser.hs b/src/Language/Fiddle/Parser.hs
index c3056bd..e91fa41 100644
--- a/src/Language/Fiddle/Parser.hs
+++ b/src/Language/Fiddle/Parser.hs
@@ -276,11 +276,16 @@ registerBitsDeclP =
( do
tok KWReserved >> ReservedBits <$> exprInParenP
)
- <|> (BitsSubStructure <$> registerBodyP <*> optionMaybe ident)
- <|> ( DefinedBits Vacant . Perhaps
- <$> optionMaybe modifierP
- <*> ident
- <*> (tok TokColon >> registerBitsTypeRefP)
+ <|> ( do
+ mod <- optionMaybe modifierP
+ ( BitsSubStructure Vacant (Perhaps mod)
+ <$> registerBodyP
+ <*> optionMaybe ident
+ )
+ <|> ( DefinedBits Vacant (Perhaps mod)
+ <$> ident
+ <*> (tok TokColon >> registerBitsTypeRefP)
+ )
)
registerBitsTypeRefP :: Pa RegisterBitsTypeRef