diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y
index e119f17..e009d06 100644
--- a/libasn1parser/asn1p_y.y
+++ b/libasn1parser/asn1p_y.y
@@ -250,10 +250,11 @@
 %type	<a_expr>		ObjectClass
 %type	<a_expr>		Type
 %type	<a_expr>		DataTypeReference	/* Type1 ::= Type2 */
-%type	<a_expr>		DefinedTypeRef
+%type	<a_expr>		DefinedType
 %type	<a_expr>		ValueSetDefinition  /* Val INTEGER ::= {1|2} */
 %type	<a_expr>		ValueDefinition		/* val INTEGER ::= 1*/
 %type	<a_value>		Value
+%type	<a_value>		SimpleValue
 %type	<a_value>		DefinedValue
 %type	<a_value>		SignedNumber
 %type	<a_expr>		optComponentTypeLists
@@ -712,7 +713,7 @@
 
 
 ValueSetDefinition:
-	TypeRefName DefinedTypeRef TOK_PPEQ
+	TypeRefName DefinedType TOK_PPEQ
 		'{' { asn1p_lexer_hack_push_opaque_state(); } Opaque /* '}' */ {
 		$$ = $2;
 		assert($$->Identifier == 0);
@@ -722,19 +723,37 @@
 	}
 	;
 
-DefinedTypeRef:
-	ComplexTypeReference {
+DefinedType:
+	BasicType {
+		$$ = $1;
+	}
+	/*
+	 * A DefinedType reference.
+	 * "CLASS1.&id.&id2"
+	 * or
+	 * "Module.Type"
+	 * or
+	 * "Module.identifier"
+	 * or
+	 * "Type"
+	 */
+	| ComplexTypeReference {
 		$$ = asn1p_expr_new(yylineno);
 		checkmem($$);
 		$$->reference = $1;
 		$$->expr_type = A1TC_REFERENCE;
 		$$->meta_type = AMT_TYPEREF;
 	}
-	| BasicTypeId {
+	/*
+	 * A parametrized assignment.
+	 */
+	| ComplexTypeReference '{' Specializations '}' {
 		$$ = asn1p_expr_new(yylineno);
 		checkmem($$);
-		$$->expr_type = $1;
-		$$->meta_type = AMT_TYPE;
+		$$->reference = $1;
+		$$->rhs_pspecs = $3;
+		$$->expr_type = A1TC_REFERENCE;
+		$$->meta_type = AMT_TYPEREF;
 	}
 	;
 
@@ -843,6 +862,14 @@
 	Type {
 		$$ = $1;
 	}
+	| SimpleValue {
+		$$ = asn1p_expr_new(yylineno);
+		checkmem($$);
+		$$->Identifier = "?";
+		$$->expr_type = A1TC_REFERENCE;
+		$$->meta_type = AMT_VALUE;
+		$$->value = $1;
+	}
 	| Identifier {
 		asn1p_ref_t *ref;
 		$$ = asn1p_expr_new(yylineno);
@@ -1168,7 +1195,7 @@
 	;
 
 TypeDeclarationSet:
-	BasicType {
+	DefinedType {
 		$$ = $1;
 	}
 	| TOK_CHOICE '{' AlternativeTypeLists '}' {
@@ -1226,34 +1253,7 @@
 		$$->expr_type = ASN_TYPE_ANY;
 		$$->meta_type = AMT_TYPE;
 	}
-	/*
-	 * A DefinedType reference.
-	 * "CLASS1.&id.&id2"
-	 * or
-	 * "Module.Type"
-	 * or
-	 * "Module.identifier"
-	 * or
-	 * "Type"
-	 */
-	| ComplexTypeReference {
-		$$ = asn1p_expr_new(yylineno);
-		checkmem($$);
-		$$->reference = $1;
-		$$->expr_type = A1TC_REFERENCE;
-		$$->meta_type = AMT_TYPEREF;
-	}
-	/*
-	 * A parametrized assignment.
-	 */
-	| ComplexTypeReference '{' Specializations '}' {
-		$$ = asn1p_expr_new(yylineno);
-		checkmem($$);
-		$$->reference = $1;
-		$$->rhs_pspecs = $3;
-		$$->expr_type = A1TC_REFERENCE;
-		$$->meta_type = AMT_TYPEREF;
-	}
+
 	| TOK_INSTANCE TOK_OF ComplexTypeReference {
 		$$ = asn1p_expr_new(yylineno);
 		checkmem($$);
@@ -1407,7 +1407,7 @@
  * === EOF ===
  */
 ValueDefinition:
-	Identifier DefinedTypeRef TOK_PPEQ Value {
+	Identifier DefinedType TOK_PPEQ Value {
 		$$ = $2;
 		assert($$->Identifier == NULL);
 		$$->Identifier = $1;
@@ -1417,7 +1417,9 @@
 	;
 
 Value:
-	Identifier ':' Value {
+	SimpleValue
+	| DefinedValue
+	| Identifier ':' Value {
 		$$ = asn1p_value_fromint(0);
 		checkmem($$);
 		$$->type = ATV_CHOICE_IDENTIFIER;
@@ -1434,7 +1436,10 @@
 		checkmem($$);
 		$$->type = ATV_NULL;
 	}
-	| TOK_FALSE {
+	;
+
+SimpleValue:
+	TOK_FALSE {
 		$$ = asn1p_value_fromint(0);
 		checkmem($$);
 		$$->type = ATV_FALSE;
@@ -1458,9 +1463,6 @@
 	| SignedNumber {
 		$$ = $1;
 	}
-	| DefinedValue {
-		$$ = $1;
-	}
 	;
 
 DefinedValue:
