bit string value constraints parsing


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1265 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y
index d9e56f8..997be27 100644
--- a/libasn1parser/asn1p_y.y
+++ b/libasn1parser/asn1p_y.y
@@ -281,6 +281,7 @@
 %type	<a_value>		DefinedValue
 %type	<a_value>		SignedNumber
 %type	<a_value>		RealValue
+%type	<a_value>		BitStringValue
 %type	<a_expr>		optComponentTypeLists
 %type	<a_expr>		ComponentTypeLists
 %type	<a_expr>		ComponentType
@@ -1566,32 +1567,6 @@
 		checkmem($$);
 		$$->type = ATV_QUADRUPLE;
 	}
-	/*
-	| '{' TOK_number ',' TOK_number '}' {
-		asn1c_integer_t v = ($2 << 4) + $4;
-		if($2 > 7) return yyerror("X.680:2003, #37.14 "
-				"mandates 0..7 range for Tuple's TableColumn");
-		if($4 > 15) return yyerror("X.680:2003, #37.14 "
-				"mandates 0..15 range for Tuple's TableRow");
-		$$ = asn1p_value_fromint(v);
-		checkmem($$);
-		$$->type = ATV_TUPLE;
-	}
-	| '{' TOK_number ',' TOK_number ',' TOK_number ',' TOK_number '}' {
-		asn1c_integer_t v = ($2 << 24) | ($4 << 16) | ($6 << 8) | $8;
-		if($2 > 127) return yyerror("X.680:2003, #37.12 "
-				"mandates 0..127 range for Quadruple's Group");
-		if($4 > 255) return yyerror("X.680:2003, #37.12 "
-				"mandates 0..255 range for Quadruple's Plane");
-		if($6 > 255) return yyerror("X.680:2003, #37.12 "
-				"mandates 0..255 range for Quadruple's Row");
-		if($8 > 255) return yyerror("X.680:2003, #37.12 "
-				"mandates 0..255 range for Quadruple's Cell");
-		$$ = asn1p_value_fromint(v);
-		checkmem($$);
-		$$->type = ATV_QUADRUPLE;
-	}
-	*/
 	;
 
 Opaque:
@@ -1894,6 +1869,7 @@
 	}
 	| RealValue
 	| RestrictedCharacterStringValue
+	| BitStringValue
 	| Identifier {
 		asn1p_ref_t *ref;
 		int ret;
@@ -1907,6 +1883,17 @@
 	}
 	;
 
+BitStringValue:
+	TOK_bstring {
+		$$ = _convert_bitstring2binary($1, 'B');
+		checkmem($$);
+	}
+	| TOK_hstring {
+		$$ = _convert_bitstring2binary($1, 'H');
+		checkmem($$);
+	}
+	;
+
 ContainedSubtype:
 	TypeRefName {
 		asn1p_ref_t *ref;