reorganized parsing around constraints
diff --git a/tests/tests-asn1c-compiler/152-value-and-type-references-OK.asn1 b/tests/tests-asn1c-compiler/152-value-and-type-references-OK.asn1
new file mode 100644
index 0000000..fcbd527
--- /dev/null
+++ b/tests/tests-asn1c-compiler/152-value-and-type-references-OK.asn1
@@ -0,0 +1,43 @@
+
+-- OK: Everything is fine
+
+-- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1)
+-- .spelio.software.asn1c.test (9363.1.5.1)
+-- .152
+
+ModuleValueAndTypeReferences
+        { iso org(3) dod(6) internet(1) private(4) enterprise(1)
+                spelio(9363) software(1) asn1c(5) test(1) 152 }
+DEFINITIONS ::= BEGIN
+
+    value INTEGER ::= 3
+
+    valueAssignment3 INTEGER ::= value
+    valueAssignment4 INTEGER ::= MOD-CAPITALS.value4
+
+    Foo ::= Extension {{CAPS.SomeType}}
+    Bar ::= Extension {{Uppercase.SomeType}}
+
+    Extension {Foo} ::= SEQUENCE {
+    }
+
+    MTYPE ::= CLASS {
+        &id    INTEGER UNIQUE,
+        &Type
+    } WITH SYNTAX {&Type IDENTIFIED BY &id}
+
+    MessageFrame ::= SEQUENCE {
+        messageIdE   MTYPE.&id,
+        messageIdF   MTYPE.&id({MessageTypes}),
+        valueE       MTYPE.&Type,
+        valueF       MTYPE.&Type({MessageTypes}{@.messageId})
+    }
+
+END
+
+MOD-CAPITALS
+        { iso org(3) dod(6) internet(1) private(4) enterprise(1)
+                spelio(9363) software(1) asn1c(5) test(1) 152 1 }
+DEFINITIONS ::= BEGIN
+    value4 INTEGER ::= 4
+END