parsing support for CONSTRAINED BY
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@826 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y
index b379667..f9c7ed4 100644
--- a/libasn1parser/asn1p_y.y
+++ b/libasn1parser/asn1p_y.y
@@ -1388,12 +1388,11 @@
Opaque:
TOK_opaque {
- $$.len = $1.len + 2;
+ $$.len = $1.len + 1;
$$.buf = malloc($$.len + 1);
checkmem($$.buf);
$$.buf[0] = '{';
- $$.buf[1] = ' ';
- memcpy($$.buf + 2, $1.buf, $1.len);
+ memcpy($$.buf + 1, $1.buf, $1.len);
$$.buf[$$.len] = '\0';
free($1.buf);
}
@@ -1623,6 +1622,15 @@
| WithComponents {
$$ = $1;
}
+ | TOK_CONSTRAINED TOK_BY '{'
+ { asn1p_lexer_hack_push_opaque_state(); } Opaque /* '}' */ {
+ $$ = asn1p_constraint_new(yylineno);
+ checkmem($$);
+ $$->type = ACT_CT_CTDBY;
+ $$->value = asn1p_value_frombuf($5.buf, $5.len, 0);
+ checkmem($$->value);
+ $$->value->type = ATV_UNPARSED;
+ }
;
ConstraintRangeSpec: