diff --git a/lib/asn1/parse.y b/lib/asn1/parse.y index dd44e080d..2f55a4804 100644 --- a/lib/asn1/parse.y +++ b/lib/asn1/parse.y @@ -67,7 +67,7 @@ static void append (Member *l, Member *r); } %token INTEGER SEQUENCE OF OCTET STRING GeneralizedTime GeneralString -%token BIT APPLICATION OPTIONAL EEQUAL TBEGIN END DEFINITIONS +%token BIT APPLICATION OPTIONAL EEQUAL TBEGIN END DEFINITIONS EXTERNAL %token IDENTIFIER %token CONSTANT @@ -86,10 +86,18 @@ specification : | specification declaration ; -declaration : type_decl +declaration : extern_decl + | type_decl | constant_decl ; +extern_decl : IDENTIFIER EXTERNAL + { + Symbol *s = addsym($1); + s->stype = Stype; + } + ; + type_decl : IDENTIFIER EEQUAL type { Symbol *s = addsym ($1);