From 62dffb99e29eba9004ef2764fbdd9b0462de4742 Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Thu, 17 Oct 2024 00:36:03 -0600 Subject: Add ContExpression syntax tree. This is for expressions which must be calculatable at compile time. --- src/Language/Fiddle/Compiler/ConsistencyCheck.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/Language/Fiddle/Compiler/ConsistencyCheck.hs') diff --git a/src/Language/Fiddle/Compiler/ConsistencyCheck.hs b/src/Language/Fiddle/Compiler/ConsistencyCheck.hs index 3d95ea0..3e81153 100644 --- a/src/Language/Fiddle/Compiler/ConsistencyCheck.hs +++ b/src/Language/Fiddle/Compiler/ConsistencyCheck.hs @@ -78,6 +78,8 @@ deriving instance AdvanceStage S PackageBody deriving instance AdvanceStage S FiddleDecl +deriving instance AdvanceStage S (ConstExpression u) + instance AdvanceStage S FiddleUnit where advanceStage () fu@(FiddleUnit _ decls a) = FiddleUnit (Present $ getUnitInterface fu) <$> mapM (advanceStage ()) decls <*> pure a @@ -256,8 +258,7 @@ advanceDecl offset = \case bitsTypeSize :: RegisterBitsTypeRef S F A -> M (N Bits) bitsTypeSize (RegisterBitsArray tr nExpr _) = do sz <- bitsTypeSize tr - n <- expressionToIntM nExpr - return (sz .*. n) + return (sz .*. trueValue nExpr) bitsTypeSize RegisterBitsReference { bitsRefQualificationMetadata = -- cgit