summaryrefslogtreecommitdiff
path: root/source4/heimdal/lib/asn1
diff options
context:
space:
mode:
Diffstat (limited to 'source4/heimdal/lib/asn1')
-rw-r--r--source4/heimdal/lib/asn1/asn1parse.c97
-rw-r--r--source4/heimdal/lib/asn1/lex.c107
2 files changed, 202 insertions, 2 deletions
diff --git a/source4/heimdal/lib/asn1/asn1parse.c b/source4/heimdal/lib/asn1/asn1parse.c
index 87868f1b2c..18bbcdd39c 100644
--- a/source4/heimdal/lib/asn1/asn1parse.c
+++ b/source4/heimdal/lib/asn1/asn1parse.c
@@ -31,6 +31,7 @@ static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
extern int YYPARSE_DECL();
+#line 39 ""
#include <config.h>
@@ -61,6 +62,7 @@ struct string_list {
#define YYMALLOC malloc
#define YYFREE free
+#line 71 ""
typedef union {
int constant;
struct value *value;
@@ -75,6 +77,7 @@ typedef union {
struct memhead *members;
struct constraint_spec *constraint_spec;
} YYSTYPE;
+#line 80 ""
#define kw_ABSENT 257
#define kw_ABSTRACT_SYNTAX 258
#define kw_ALL 259
@@ -609,6 +612,7 @@ YYSTYPE yylval;
/* variables for the parser stack */
static YYSTACKDATA yystack;
+#line 945 ""
void
yyerror (const char *s)
@@ -702,6 +706,7 @@ fix_labels(Symbol *s)
fix_labels2(s->type, p);
free(p);
}
+#line 709 ""
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
static int yygrowstack(YYSTACKDATA *data)
{
@@ -904,20 +909,25 @@ yyreduce:
switch (yyn)
{
case 1:
+#line 241 ""
{
checkundefined();
}
break;
case 3:
+#line 248 ""
{ lex_error_message("implicit tagging is not supported"); }
break;
case 4:
+#line 250 ""
{ lex_error_message("automatic tagging is not supported"); }
break;
case 6:
+#line 255 ""
{ lex_error_message("no extensibility options supported"); }
break;
case 16:
+#line 276 ""
{
struct string_list *sl;
for(sl = yystack.l_mark[-3].sl; sl != NULL; sl = sl->next) {
@@ -929,6 +939,7 @@ case 16:
}
break;
case 17:
+#line 288 ""
{
struct string_list *sl;
for(sl = yystack.l_mark[-1].sl; sl != NULL; sl = sl->next)
@@ -936,6 +947,7 @@ case 17:
}
break;
case 24:
+#line 306 ""
{
yyval.sl = emalloc(sizeof(*yyval.sl));
yyval.sl->string = yystack.l_mark[-2].name;
@@ -943,6 +955,7 @@ case 24:
}
break;
case 25:
+#line 312 ""
{
yyval.sl = emalloc(sizeof(*yyval.sl));
yyval.sl->string = yystack.l_mark[0].name;
@@ -950,6 +963,7 @@ case 25:
}
break;
case 26:
+#line 320 ""
{
Symbol *s = addsym (yystack.l_mark[-2].name);
s->stype = Stype;
@@ -959,12 +973,14 @@ case 26:
}
break;
case 44:
+#line 351 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_Boolean,
TE_EXPLICIT, new_type(TBoolean));
}
break;
case 45:
+#line 358 ""
{
if(yystack.l_mark[-3].value->type != integervalue)
lex_error_message("Non-integer used in first part of range");
@@ -976,7 +992,8 @@ case 45:
}
break;
case 46:
- {
+#line 368 ""
+ {
if(yystack.l_mark[-3].value->type != integervalue)
lex_error_message("Non-integer in first part of range");
yyval.range = ecalloc(1, sizeof(*yyval.range));
@@ -985,7 +1002,8 @@ case 46:
}
break;
case 47:
- {
+#line 376 ""
+ {
if(yystack.l_mark[-1].value->type != integervalue)
lex_error_message("Non-integer in second part of range");
yyval.range = ecalloc(1, sizeof(*yyval.range));
@@ -994,6 +1012,7 @@ case 47:
}
break;
case 48:
+#line 384 ""
{
if(yystack.l_mark[-1].value->type != integervalue)
lex_error_message("Non-integer used in limit");
@@ -1003,12 +1022,14 @@ case 48:
}
break;
case 49:
+#line 395 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_Integer,
TE_EXPLICIT, new_type(TInteger));
}
break;
case 50:
+#line 400 ""
{
yyval.type = new_type(TInteger);
yyval.type->range = yystack.l_mark[0].range;
@@ -1016,6 +1037,7 @@ case 50:
}
break;
case 51:
+#line 406 ""
{
yyval.type = new_type(TInteger);
yyval.type->members = yystack.l_mark[-1].members;
@@ -1023,6 +1045,7 @@ case 51:
}
break;
case 52:
+#line 414 ""
{
yyval.members = emalloc(sizeof(*yyval.members));
ASN1_TAILQ_INIT(yyval.members);
@@ -1030,15 +1053,18 @@ case 52:
}
break;
case 53:
+#line 420 ""
{
ASN1_TAILQ_INSERT_TAIL(yystack.l_mark[-2].members, yystack.l_mark[0].member, members);
yyval.members = yystack.l_mark[-2].members;
}
break;
case 54:
+#line 425 ""
{ yyval.members = yystack.l_mark[-2].members; }
break;
case 55:
+#line 429 ""
{
yyval.member = emalloc(sizeof(*yyval.member));
yyval.member->name = yystack.l_mark[-3].name;
@@ -1051,6 +1077,7 @@ case 55:
}
break;
case 56:
+#line 442 ""
{
yyval.type = new_type(TInteger);
yyval.type->members = yystack.l_mark[-1].members;
@@ -1058,6 +1085,7 @@ case 56:
}
break;
case 58:
+#line 453 ""
{
yyval.type = new_type(TBitString);
yyval.type->members = emalloc(sizeof(*yyval.type->members));
@@ -1066,6 +1094,7 @@ case 58:
}
break;
case 59:
+#line 460 ""
{
yyval.type = new_type(TBitString);
yyval.type->members = yystack.l_mark[-1].members;
@@ -1073,12 +1102,14 @@ case 59:
}
break;
case 60:
+#line 468 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_OID,
TE_EXPLICIT, new_type(TOID));
}
break;
case 61:
+#line 474 ""
{
Type *t = new_type(TOctetString);
t->range = yystack.l_mark[0].range;
@@ -1087,18 +1118,22 @@ case 61:
}
break;
case 62:
+#line 483 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_Null,
TE_EXPLICIT, new_type(TNull));
}
break;
case 63:
+#line 490 ""
{ yyval.range = NULL; }
break;
case 64:
+#line 492 ""
{ yyval.range = yystack.l_mark[0].range; }
break;
case 65:
+#line 497 ""
{
yyval.type = new_type(TSequence);
yyval.type->members = yystack.l_mark[-1].members;
@@ -1106,6 +1141,7 @@ case 65:
}
break;
case 66:
+#line 503 ""
{
yyval.type = new_type(TSequence);
yyval.type->members = NULL;
@@ -1113,6 +1149,7 @@ case 66:
}
break;
case 67:
+#line 511 ""
{
yyval.type = new_type(TSequenceOf);
yyval.type->range = yystack.l_mark[-2].range;
@@ -1121,6 +1158,7 @@ case 67:
}
break;
case 68:
+#line 520 ""
{
yyval.type = new_type(TSet);
yyval.type->members = yystack.l_mark[-1].members;
@@ -1128,6 +1166,7 @@ case 68:
}
break;
case 69:
+#line 526 ""
{
yyval.type = new_type(TSet);
yyval.type->members = NULL;
@@ -1135,6 +1174,7 @@ case 69:
}
break;
case 70:
+#line 534 ""
{
yyval.type = new_type(TSetOf);
yyval.type->subtype = yystack.l_mark[0].type;
@@ -1142,12 +1182,14 @@ case 70:
}
break;
case 71:
+#line 542 ""
{
yyval.type = new_type(TChoice);
yyval.type->members = yystack.l_mark[-1].members;
}
break;
case 74:
+#line 553 ""
{
Symbol *s = addsym(yystack.l_mark[0].name);
yyval.type = new_type(TType);
@@ -1158,18 +1200,21 @@ case 74:
}
break;
case 75:
+#line 564 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_GeneralizedTime,
TE_EXPLICIT, new_type(TGeneralizedTime));
}
break;
case 76:
+#line 569 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_UTCTime,
TE_EXPLICIT, new_type(TUTCTime));
}
break;
case 77:
+#line 576 ""
{
/* if (Constraint.type == contentConstrant) {
assert(Constraint.u.constraint.type == octetstring|bitstring-w/o-NamedBitList); // remember to check type reference too
@@ -1184,11 +1229,13 @@ case 77:
}
break;
case 78:
+#line 592 ""
{
yyval.constraint_spec = yystack.l_mark[-1].constraint_spec;
}
break;
case 82:
+#line 605 ""
{
yyval.constraint_spec = new_constraint_spec(CT_CONTENTS);
yyval.constraint_spec->u.content.type = yystack.l_mark[0].type;
@@ -1196,6 +1243,7 @@ case 82:
}
break;
case 83:
+#line 611 ""
{
if (yystack.l_mark[0].value->type != objectidentifiervalue)
lex_error_message("Non-OID used in ENCODED BY constraint");
@@ -1205,6 +1253,7 @@ case 83:
}
break;
case 84:
+#line 619 ""
{
if (yystack.l_mark[0].value->type != objectidentifiervalue)
lex_error_message("Non-OID used in ENCODED BY constraint");
@@ -1214,11 +1263,13 @@ case 84:
}
break;
case 85:
+#line 629 ""
{
yyval.constraint_spec = new_constraint_spec(CT_USER);
}
break;
case 86:
+#line 635 ""
{
yyval.type = new_type(TTag);
yyval.type->tag = yystack.l_mark[-2].tag;
@@ -1231,6 +1282,7 @@ case 86:
}
break;
case 87:
+#line 648 ""
{
yyval.tag.tagclass = yystack.l_mark[-2].constant;
yyval.tag.tagvalue = yystack.l_mark[-1].constant;
@@ -1238,41 +1290,49 @@ case 87:
}
break;
case 88:
+#line 656 ""
{
yyval.constant = ASN1_C_CONTEXT;
}
break;
case 89:
+#line 660 ""
{
yyval.constant = ASN1_C_UNIV;
}
break;
case 90:
+#line 664 ""
{
yyval.constant = ASN1_C_APPL;
}
break;
case 91:
+#line 668 ""
{
yyval.constant = ASN1_C_PRIVATE;
}
break;
case 92:
+#line 674 ""
{
yyval.constant = TE_EXPLICIT;
}
break;
case 93:
+#line 678 ""
{
yyval.constant = TE_EXPLICIT;
}
break;
case 94:
+#line 682 ""
{
yyval.constant = TE_IMPLICIT;
}
break;
case 95:
+#line 689 ""
{
Symbol *s;
s = addsym (yystack.l_mark[-3].name);
@@ -1283,54 +1343,63 @@ case 95:
}
break;
case 97:
+#line 703 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_GeneralString,
TE_EXPLICIT, new_type(TGeneralString));
}
break;
case 98:
+#line 708 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_TeletexString,
TE_EXPLICIT, new_type(TTeletexString));
}
break;
case 99:
+#line 713 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_UTF8String,
TE_EXPLICIT, new_type(TUTF8String));
}
break;
case 100:
+#line 718 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_PrintableString,
TE_EXPLICIT, new_type(TPrintableString));
}
break;
case 101:
+#line 723 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_VisibleString,
TE_EXPLICIT, new_type(TVisibleString));
}
break;
case 102:
+#line 728 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_IA5String,
TE_EXPLICIT, new_type(TIA5String));
}
break;
case 103:
+#line 733 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_BMPString,
TE_EXPLICIT, new_type(TBMPString));
}
break;
case 104:
+#line 738 ""
{
yyval.type = new_tag(ASN1_C_UNIV, UT_UniversalString,
TE_EXPLICIT, new_type(TUniversalString));
}
break;
case 105:
+#line 746 ""
{
yyval.members = emalloc(sizeof(*yyval.members));
ASN1_TAILQ_INIT(yyval.members);
@@ -1338,12 +1407,14 @@ case 105:
}
break;
case 106:
+#line 752 ""
{
ASN1_TAILQ_INSERT_TAIL(yystack.l_mark[-2].members, yystack.l_mark[0].member, members);
yyval.members = yystack.l_mark[-2].members;
}
break;
case 107:
+#line 757 ""
{
struct member *m = ecalloc(1, sizeof(*m));
m->name = estrdup("...");
@@ -1354,6 +1425,7 @@ case 107:
}
break;
case 108:
+#line 768 ""
{
yyval.member = emalloc(sizeof(*yyval.member));
yyval.member->name = yystack.l_mark[-1].name;
@@ -1364,6 +1436,7 @@ case 108:
}
break;
case 109:
+#line 779 ""
{
yyval.member = yystack.l_mark[0].member;
yyval.member->optional = 0;
@@ -1371,6 +1444,7 @@ case 109:
}
break;
case 110:
+#line 785 ""
{
yyval.member = yystack.l_mark[-1].member;
yyval.member->optional = 1;
@@ -1378,6 +1452,7 @@ case 110:
}
break;
case 111:
+#line 791 ""
{
yyval.member = yystack.l_mark[-2].member;
yyval.member->optional = 0;
@@ -1385,6 +1460,7 @@ case 111:
}
break;
case 112:
+#line 799 ""
{
yyval.members = emalloc(sizeof(*yyval.members));
ASN1_TAILQ_INIT(yyval.members);
@@ -1392,12 +1468,14 @@ case 112:
}
break;
case 113:
+#line 805 ""
{
ASN1_TAILQ_INSERT_TAIL(yystack.l_mark[-2].members, yystack.l_mark[0].member, members);
yyval.members = yystack.l_mark[-2].members;
}
break;
case 114:
+#line 812 ""
{
yyval.member = emalloc(sizeof(*yyval.member));
yyval.member->name = yystack.l_mark[-3].name;
@@ -1410,19 +1488,23 @@ case 114:
}
break;
case 116:
+#line 825 ""
{ yyval.objid = NULL; }
break;
case 117:
+#line 829 ""
{
yyval.objid = yystack.l_mark[-1].objid;
}
break;
case 118:
+#line 835 ""
{
yyval.objid = NULL;
}
break;
case 119:
+#line 839 ""
{
if (yystack.l_mark[0].objid) {
yyval.objid = yystack.l_mark[0].objid;
@@ -1433,11 +1515,13 @@ case 119:
}
break;
case 120:
+#line 850 ""
{
yyval.objid = new_objid(yystack.l_mark[-3].name, yystack.l_mark[-1].constant);
}
break;
case 121:
+#line 854 ""
{
Symbol *s = addsym(yystack.l_mark[0].name);
if(s->stype != SValue ||
@@ -1450,11 +1534,13 @@ case 121:
}
break;
case 122:
+#line 865 ""
{
yyval.objid = new_objid(NULL, yystack.l_mark[0].constant);
}
break;
case 132:
+#line 888 ""
{
Symbol *s = addsym(yystack.l_mark[0].name);
if(s->stype != SValue)
@@ -1465,6 +1551,7 @@ case 132:
}
break;
case 133:
+#line 899 ""
{
yyval.value = emalloc(sizeof(*yyval.value));
yyval.value->type = stringvalue;
@@ -1472,6 +1559,7 @@ case 133:
}
break;
case 134:
+#line 907 ""
{
yyval.value = emalloc(sizeof(*yyval.value));
yyval.value->type = booleanvalue;
@@ -1479,6 +1567,7 @@ case 134:
}
break;
case 135:
+#line 913 ""
{
yyval.value = emalloc(sizeof(*yyval.value));
yyval.value->type = booleanvalue;
@@ -1486,6 +1575,7 @@ case 135:
}
break;
case 136:
+#line 921 ""
{
yyval.value = emalloc(sizeof(*yyval.value));
yyval.value->type = integervalue;
@@ -1493,16 +1583,19 @@ case 136:
}
break;
case 138:
+#line 932 ""
{
}
break;
case 139:
+#line 937 ""
{
yyval.value = emalloc(sizeof(*yyval.value));
yyval.value->type = objectidentifiervalue;
yyval.value->u.objectidentifiervalue = yystack.l_mark[0].objid;
}
break;
+#line 1598 ""
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
diff --git a/source4/heimdal/lib/asn1/lex.c b/source4/heimdal/lib/asn1/lex.c
index 872cfd3a9b..264d573008 100644
--- a/source4/heimdal/lib/asn1/lex.c
+++ b/source4/heimdal/lib/asn1/lex.c
@@ -788,6 +788,8 @@ int yy_flex_debug = 0;
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
+#line 1 "lex.l"
+#line 2 "lex.l"
/*
* Copyright (c) 1997 - 2005 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
@@ -846,6 +848,7 @@ static unsigned lineno = 1;
static void unterminated(const char *, unsigned);
/* This is for broken old lexes (solaris 10 and hpux) */
+#line 851 ""
#define INITIAL 0
@@ -1027,6 +1030,10 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
+#line 68 "lex.l"
+
+#line 1035 ""
+
if ( !(yy_init) )
{
(yy_init) = 1;
@@ -1110,342 +1117,427 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
+#line 69 "lex.l"
{ return kw_ABSENT; }
YY_BREAK
case 2:
YY_RULE_SETUP
+#line 70 "lex.l"
{ return kw_ABSTRACT_SYNTAX; }
YY_BREAK
case 3:
YY_RULE_SETUP
+#line 71 "lex.l"
{ return kw_ALL; }
YY_BREAK
case 4:
YY_RULE_SETUP
+#line 72 "lex.l"
{ return kw_APPLICATION; }
YY_BREAK
case 5:
YY_RULE_SETUP
+#line 73 "lex.l"
{ return kw_AUTOMATIC; }
YY_BREAK
case 6:
YY_RULE_SETUP
+#line 74 "lex.l"
{ return kw_BEGIN; }
YY_BREAK
case 7:
YY_RULE_SETUP
+#line 75 "lex.l"
{ return kw_BIT; }
YY_BREAK
case 8:
YY_RULE_SETUP
+#line 76 "lex.l"
{ return kw_BMPString; }
YY_BREAK
case 9:
YY_RULE_SETUP
+#line 77 "lex.l"
{ return kw_BOOLEAN; }
YY_BREAK
case 10:
YY_RULE_SETUP
+#line 78 "lex.l"
{ return kw_BY; }
YY_BREAK
case 11:
YY_RULE_SETUP
+#line 79 "lex.l"
{ return kw_CHARACTER; }
YY_BREAK
case 12:
YY_RULE_SETUP
+#line 80 "lex.l"
{ return kw_CHOICE; }
YY_BREAK
case 13:
YY_RULE_SETUP
+#line 81 "lex.l"
{ return kw_CLASS; }
YY_BREAK
case 14:
YY_RULE_SETUP
+#line 82 "lex.l"
{ return kw_COMPONENT; }
YY_BREAK
case 15:
YY_RULE_SETUP
+#line 83 "lex.l"
{ return kw_COMPONENTS; }
YY_BREAK
case 16:
YY_RULE_SETUP
+#line 84 "lex.l"
{ return kw_CONSTRAINED; }
YY_BREAK
case 17:
YY_RULE_SETUP
+#line 85 "lex.l"
{ return kw_CONTAINING; }
YY_BREAK
case 18:
YY_RULE_SETUP
+#line 86 "lex.l"
{ return kw_DEFAULT; }
YY_BREAK
case 19:
YY_RULE_SETUP
+#line 87 "lex.l"
{ return kw_DEFINITIONS; }
YY_BREAK
case 20:
YY_RULE_SETUP
+#line 88 "lex.l"
{ return kw_EMBEDDED; }
YY_BREAK
case 21:
YY_RULE_SETUP
+#line 89 "lex.l"
{ return kw_ENCODED; }
YY_BREAK
case 22:
YY_RULE_SETUP
+#line 90 "lex.l"
{ return kw_END; }
YY_BREAK
case 23:
YY_RULE_SETUP
+#line 91 "lex.l"
{ return kw_ENUMERATED; }
YY_BREAK
case 24:
YY_RULE_SETUP
+#line 92 "lex.l"
{ return kw_EXCEPT; }
YY_BREAK
case 25:
YY_RULE_SETUP
+#line 93 "lex.l"
{ return kw_EXPLICIT; }
YY_BREAK
case 26:
YY_RULE_SETUP
+#line 94 "lex.l"
{ return kw_EXPORTS; }
YY_BREAK
case 27:
YY_RULE_SETUP
+#line 95 "lex.l"
{ return kw_EXTENSIBILITY; }
YY_BREAK
case 28:
YY_RULE_SETUP
+#line 96 "lex.l"
{ return kw_EXTERNAL; }
YY_BREAK
case 29:
YY_RULE_SETUP
+#line 97 "lex.l"
{ return kw_FALSE; }
YY_BREAK
case 30:
YY_RULE_SETUP
+#line 98 "lex.l"
{ return kw_FROM; }
YY_BREAK
case 31:
YY_RULE_SETUP
+#line 99 "lex.l"
{ return kw_GeneralString; }
YY_BREAK
case 32:
YY_RULE_SETUP
+#line 100 "lex.l"
{ return kw_GeneralizedTime; }
YY_BREAK
case 33:
YY_RULE_SETUP
+#line 101 "lex.l"
{ return kw_GraphicString; }
YY_BREAK
case 34:
YY_RULE_SETUP
+#line 102 "lex.l"
{ return kw_IA5String; }
YY_BREAK
case 35:
YY_RULE_SETUP
+#line 103 "lex.l"
{ return kw_IDENTIFIER; }
YY_BREAK
case 36:
YY_RULE_SETUP
+#line 104 "lex.l"
{ return kw_IMPLICIT; }
YY_BREAK
case 37:
YY_RULE_SETUP
+#line 105 "lex.l"
{ return kw_IMPLIED; }
YY_BREAK
case 38:
YY_RULE_SETUP
+#line 106 "lex.l"
{ return kw_IMPORTS; }
YY_BREAK
case 39:
YY_RULE_SETUP
+#line 107 "lex.l"
{ return kw_INCLUDES; }
YY_BREAK
case 40:
YY_RULE_SETUP
+#line 108 "lex.l"
{ return kw_INSTANCE; }
YY_BREAK
case 41:
YY_RULE_SETUP
+#line 109 "lex.l"
{ return kw_INTEGER; }
YY_BREAK
case 42:
YY_RULE_SETUP
+#line 110 "lex.l"
{ return kw_INTERSECTION; }
YY_BREAK
case 43:
YY_RULE_SETUP
+#line 111 "lex.l"
{ return kw_ISO646String; }
YY_BREAK
case 44:
YY_RULE_SETUP
+#line 112 "lex.l"
{ return kw_MAX; }
YY_BREAK
case 45:
YY_RULE_SETUP
+#line 113 "lex.l"
{ return kw_MIN; }
YY_BREAK
case 46:
YY_RULE_SETUP
+#line 114 "lex.l"
{ return kw_MINUS_INFINITY; }
YY_BREAK
case 47:
YY_RULE_SETUP
+#line 115 "lex.l"
{ return kw_NULL; }
YY_BREAK
case 48:
YY_RULE_SETUP
+#line 116 "lex.l"
{ return kw_NumericString; }
YY_BREAK
case 49:
YY_RULE_SETUP
+#line 117 "lex.l"
{ return kw_OBJECT; }
YY_BREAK
case 50:
YY_RULE_SETUP
+#line 118 "lex.l"
{ return kw_OCTET; }
YY_BREAK
case 51:
YY_RULE_SETUP
+#line 119 "lex.l"
{ return kw_OF; }
YY_BREAK
case 52:
YY_RULE_SETUP
+#line 120 "lex.l"
{ return kw_OPTIONAL; }
YY_BREAK
case 53:
YY_RULE_SETUP
+#line 121 "lex.l"
{ return kw_ObjectDescriptor; }
YY_BREAK
case 54:
YY_RULE_SETUP
+#line 122 "lex.l"
{ return kw_PATTERN; }
YY_BREAK
case 55:
YY_RULE_SETUP
+#line 123 "lex.l"
{ return kw_PDV; }
YY_BREAK
case 56:
YY_RULE_SETUP
+#line 124 "lex.l"
{ return kw_PLUS_INFINITY; }
YY_BREAK
case 57:
YY_RULE_SETUP
+#line 125 "lex.l"
{ return kw_PRESENT; }
YY_BREAK
case 58:
YY_RULE_SETUP
+#line 126 "lex.l"
{ return kw_PRIVATE; }
YY_BREAK
case 59:
YY_RULE_SETUP
+#line 127 "lex.l"
{ return kw_PrintableString; }
YY_BREAK
case 60:
YY_RULE_SETUP
+#line 128 "lex.l"
{ return kw_REAL; }
YY_BREAK
case 61:
YY_RULE_SETUP
+#line 129 "lex.l"
{ return kw_RELATIVE_OID; }
YY_BREAK
case 62:
YY_RULE_SETUP
+#line 130 "lex.l"
{ return kw_SEQUENCE; }
YY_BREAK
case 63:
YY_RULE_SETUP
+#line 131 "lex.l"
{ return kw_SET; }
YY_BREAK
case 64:
YY_RULE_SETUP
+#line 132 "lex.l"
{ return kw_SIZE; }
YY_BREAK
case 65:
YY_RULE_SETUP
+#line 133 "lex.l"
{ return kw_STRING; }
YY_BREAK
case 66:
YY_RULE_SETUP
+#line 134 "lex.l"
{ return kw_SYNTAX; }
YY_BREAK
case 67:
YY_RULE_SETUP
+#line 135 "lex.l"
{ return kw_T61String; }
YY_BREAK
case 68:
YY_RULE_SETUP
+#line 136 "lex.l"
{ return kw_TAGS; }
YY_BREAK
case 69:
YY_RULE_SETUP
+#line 137 "lex.l"
{ return kw_TRUE; }
YY_BREAK
case 70:
YY_RULE_SETUP
+#line 138 "lex.l"
{ return kw_TYPE_IDENTIFIER; }
YY_BREAK
case 71:
YY_RULE_SETUP
+#line 139 "lex.l"
{ return kw_TeletexString; }
YY_BREAK
case 72:
YY_RULE_SETUP
+#line 140 "lex.l"
{ return kw_UNION; }
YY_BREAK
case 73:
YY_RULE_SETUP
+#line 141 "lex.l"
{ return kw_UNIQUE; }
YY_BREAK
case 74:
YY_RULE_SETUP
+#line 142 "lex.l"
{ return kw_UNIVERSAL; }
YY_BREAK
case 75:
YY_RULE_SETUP
+#line 143 "lex.l"
{ return kw_UTCTime; }
YY_BREAK
case 76:
YY_RULE_SETUP
+#line 144 "lex.l"
{ return kw_UTF8String; }
YY_BREAK
case 77:
YY_RULE_SETUP
+#line 145 "lex.l"
{ return kw_UniversalString; }
YY_BREAK
case 78:
YY_RULE_SETUP
+#line 146 "lex.l"
{ return kw_VideotexString; }
YY_BREAK
case 79:
YY_RULE_SETUP
+#line 147 "lex.l"
{ return kw_VisibleString; }
YY_BREAK
case 80:
YY_RULE_SETUP
+#line 148 "lex.l"
{ return kw_WITH; }
YY_BREAK
case 81:
YY_RULE_SETUP
+#line 149 "lex.l"
{ return *yytext; }
YY_BREAK
case 82:
YY_RULE_SETUP
+#line 150 "lex.l"
{ return *yytext; }
YY_BREAK
case 83:
YY_RULE_SETUP
+#line 151 "lex.l"
{ return *yytext; }
YY_BREAK
case 84:
YY_RULE_SETUP
+#line 152 "lex.l"
{ return EEQUAL; }
YY_BREAK
case 85:
YY_RULE_SETUP
+#line 153 "lex.l"
{
int c, start_lineno = lineno;
int f = 0;
@@ -1468,6 +1560,7 @@ YY_RULE_SETUP
YY_BREAK
case 86:
YY_RULE_SETUP
+#line 172 "lex.l"
{
int c, start_lineno = lineno;
int level = 1;
@@ -1511,6 +1604,7 @@ YY_RULE_SETUP
YY_BREAK
case 87:
YY_RULE_SETUP
+#line 212 "lex.l"
{
int start_lineno = lineno;
int c;
@@ -1558,6 +1652,7 @@ YY_RULE_SETUP
YY_BREAK
case 88:
YY_RULE_SETUP
+#line 257 "lex.l"
{ char *e, *y = yytext;
yylval.constant = strtol((const char *)yytext,
&e, 0);
@@ -1569,6 +1664,7 @@ YY_RULE_SETUP
YY_BREAK
case 89:
YY_RULE_SETUP
+#line 265 "lex.l"
{
yylval.name = estrdup ((const char *)yytext);
return IDENTIFIER;
@@ -1576,29 +1672,36 @@ YY_RULE_SETUP
YY_BREAK
case 90:
YY_RULE_SETUP
+#line 269 "lex.l"
;
YY_BREAK
case 91:
/* rule 91 can match eol */
YY_RULE_SETUP
+#line 270 "lex.l"
{ ++lineno; }
YY_BREAK
case 92:
YY_RULE_SETUP
+#line 271 "lex.l"
{ return ELLIPSIS; }
YY_BREAK
case 93:
YY_RULE_SETUP
+#line 272 "lex.l"
{ return RANGE; }
YY_BREAK
case 94:
YY_RULE_SETUP
+#line 273 "lex.l"
{ lex_error_message("Ignoring char(%c)\n", *yytext); }
YY_BREAK
case 95:
YY_RULE_SETUP
+#line 274 "lex.l"
ECHO;
YY_BREAK
+#line 1704 ""
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -2596,6 +2699,10 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
+#line 274 "lex.l"
+
+
+
#ifndef yywrap /* XXX */
int
yywrap ()