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;