aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-objtypes.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-09-26 09:11:33 +0200
committerTristan Gingold <tgingold@free.fr>2020-09-26 09:11:33 +0200
commitc389c4fc8b65357e8075731323f4ba188817c134 (patch)
tree58457b56b7bac1da744c5f4ea6c4930ee6032e67 /src/synth/synth-objtypes.adb
parent8269262a63906c16f4fc2fd3c17fc91216eb7f09 (diff)
downloadghdl-c389c4fc8b65357e8075731323f4ba188817c134.tar.gz
ghdl-c389c4fc8b65357e8075731323f4ba188817c134.tar.bz2
ghdl-c389c4fc8b65357e8075731323f4ba188817c134.zip
synth: minor refactoring. Move In_Bounds/In_Range to synth-objtypes.
Diffstat (limited to 'src/synth/synth-objtypes.adb')
-rw-r--r--src/synth/synth-objtypes.adb20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/synth/synth-objtypes.adb b/src/synth/synth-objtypes.adb
index 585605190..25857f065 100644
--- a/src/synth/synth-objtypes.adb
+++ b/src/synth/synth-objtypes.adb
@@ -156,6 +156,26 @@ package body Synth.Objtypes is
return W;
end Discrete_Range_Width;
+ function In_Bounds (Bnd : Bound_Type; V : Int32) return Boolean is
+ begin
+ case Bnd.Dir is
+ when Dir_To =>
+ return V >= Bnd.Left and then V <= Bnd.Right;
+ when Dir_Downto =>
+ return V <= Bnd.Left and then V >= Bnd.Right;
+ end case;
+ end In_Bounds;
+
+ function In_Range (Rng : Discrete_Range_Type; V : Int64) return Boolean is
+ begin
+ case Rng.Dir is
+ when Dir_To =>
+ return V >= Rng.Left and then V <= Rng.Right;
+ when Dir_Downto =>
+ return V <= Rng.Left and then V >= Rng.Right;
+ end case;
+ end In_Range;
+
function Create_Bit_Type return Type_Acc
is
subtype Bit_Type_Type is Type_Type (Type_Bit);