diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2024-10-17 00:36:03 -0600 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2024-10-17 00:36:03 -0600 |
commit | 62dffb99e29eba9004ef2764fbdd9b0462de4742 (patch) | |
tree | 663298cb18eff8f6d7966aba1ec7845d58e19894 /src/Language/Fiddle/Compiler/ConsistencyCheck.hs | |
parent | c31a34382d6fe1307a0c6fe1710c42f27fe833ca (diff) | |
download | fiddle-62dffb99e29eba9004ef2764fbdd9b0462de4742.tar.gz fiddle-62dffb99e29eba9004ef2764fbdd9b0462de4742.tar.bz2 fiddle-62dffb99e29eba9004ef2764fbdd9b0462de4742.zip |
Add ContExpression syntax tree.
This is for expressions which must be calculatable at compile time.
Diffstat (limited to 'src/Language/Fiddle/Compiler/ConsistencyCheck.hs')
-rw-r--r-- | src/Language/Fiddle/Compiler/ConsistencyCheck.hs | 5 |
1 files changed, 3 insertions, 2 deletions
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 = |