--- /dev/null
+
+-- OK: Everything is fine
+
+-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
+-- .spelio.software.asn1c.test (9363.1.5.1)
+-- .154
+
+ModuleREALWithComponents
+ { iso org(3) dod(6) internet(1) private(4) enterprise(1)
+ spelio(9363) software(1) asn1c(5) test(1) 154 }
+DEFINITIONS ::= BEGIN
+
+ UnconstrainedREAL ::= REAL
+
+ WeirdlyConstrainedREAL ::= REAL (3, ...) -- Not really constrained
+
+ Indirect-IEEE-binary32 ::= UnconstrainedREAL (WITH COMPONENTS {
+ mantissa (-16777215..16777215),
+ base (2), exponent (-149..104)})
+
+ -- X.696 (08/2005) #12.2 and #12.3
+
+ -- IEEE 754 encoding single precision
+ IEEE-binary32-w ::= REAL (WITH COMPONENTS {
+ mantissa (-16777215..16777215),
+ base (2), exponent (-149..104)})
+
+ IEEE-binary32-0w ::= REAL (0 | WITH COMPONENTS {
+ mantissa (-16777215..16777215),
+ base (2), exponent (-149..104)})
+
+ IEEE-binary32-w0 ::= REAL (WITH COMPONENTS {
+ mantissa (-16777215..16777215),
+ base (2), exponent (-149..104)} | 0)
+
+ -- IEEE 754 encoding double precision
+ IEEE-binary64-w ::= REAL (WITH COMPONENTS {
+ mantissa (-9007199254740991..9007199254740991),
+ base (2), exponent (-1074..971)})
+
+ IEEE-binary64-0w ::= REAL (0 | WITH COMPONENTS {
+ mantissa (-9007199254740991..9007199254740991),
+ base (2), exponent (-1074..971)})
+
+ IEEE-binary64-w0 ::= REAL (WITH COMPONENTS {
+ mantissa (-9007199254740991..9007199254740991),
+ base (2), exponent (-1074..971)} | 0)
+
+ Test ::= SEQUENCE {
+ indirect-ieee-binary32 Indirect-IEEE-binary32,
+ ieee-binary32-w IEEE-binary32-w,
+ ieee-binary32-0w IEEE-binary32-0w,
+ ieee-binary32-w0 IEEE-binary32-w0,
+ ieee-binary64-w IEEE-binary64-w,
+ ieee-binary64-0w IEEE-binary64-0w,
+ ieee-binary64-w0 IEEE-binary64-w0
+ }
+
+END