mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
Revert "heimdal_build omit #line statments to allow valgrind to work again"
This reverts commit 80e23c68d8
.
A better patch has been provided by Milan Crha in the following commit.
This commit is contained in:
parent
80e23c68d8
commit
68c61a829b
@ -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;
|
||||
|
@ -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 ()
|
||||
|
@ -473,6 +473,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) 1998 - 2000 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
@ -525,6 +527,8 @@ static int getstring(void);
|
||||
|
||||
#undef ECHO
|
||||
|
||||
#line 530 ""
|
||||
|
||||
#define INITIAL 0
|
||||
|
||||
#ifndef YY_NO_UNISTD_H
|
||||
@ -703,6 +707,10 @@ YY_DECL
|
||||
register char *yy_cp, *yy_bp;
|
||||
register int yy_act;
|
||||
|
||||
#line 58 "lex.l"
|
||||
|
||||
#line 712 ""
|
||||
|
||||
if ( !(yy_init) )
|
||||
{
|
||||
(yy_init) = 1;
|
||||
@ -786,69 +794,86 @@ do_action: /* This label is used only to access EOF actions. */
|
||||
|
||||
case 1:
|
||||
YY_RULE_SETUP
|
||||
#line 59 "lex.l"
|
||||
{ return ET; }
|
||||
YY_BREAK
|
||||
case 2:
|
||||
YY_RULE_SETUP
|
||||
#line 60 "lex.l"
|
||||
{ return ET; }
|
||||
YY_BREAK
|
||||
case 3:
|
||||
YY_RULE_SETUP
|
||||
#line 61 "lex.l"
|
||||
{ return EC; }
|
||||
YY_BREAK
|
||||
case 4:
|
||||
YY_RULE_SETUP
|
||||
#line 62 "lex.l"
|
||||
{ return EC; }
|
||||
YY_BREAK
|
||||
case 5:
|
||||
YY_RULE_SETUP
|
||||
#line 63 "lex.l"
|
||||
{ return PREFIX; }
|
||||
YY_BREAK
|
||||
case 6:
|
||||
YY_RULE_SETUP
|
||||
#line 64 "lex.l"
|
||||
{ return INDEX; }
|
||||
YY_BREAK
|
||||
case 7:
|
||||
YY_RULE_SETUP
|
||||
#line 65 "lex.l"
|
||||
{ return ID; }
|
||||
YY_BREAK
|
||||
case 8:
|
||||
YY_RULE_SETUP
|
||||
#line 66 "lex.l"
|
||||
{ return END; }
|
||||
YY_BREAK
|
||||
case 9:
|
||||
YY_RULE_SETUP
|
||||
#line 67 "lex.l"
|
||||
{ yylval.number = atoi(yytext); return NUMBER; }
|
||||
YY_BREAK
|
||||
case 10:
|
||||
YY_RULE_SETUP
|
||||
#line 68 "lex.l"
|
||||
;
|
||||
YY_BREAK
|
||||
case 11:
|
||||
YY_RULE_SETUP
|
||||
#line 69 "lex.l"
|
||||
;
|
||||
YY_BREAK
|
||||
case 12:
|
||||
/* rule 12 can match eol */
|
||||
YY_RULE_SETUP
|
||||
#line 70 "lex.l"
|
||||
{ lineno++; }
|
||||
YY_BREAK
|
||||
case 13:
|
||||
YY_RULE_SETUP
|
||||
#line 71 "lex.l"
|
||||
{ return getstring(); }
|
||||
YY_BREAK
|
||||
case 14:
|
||||
YY_RULE_SETUP
|
||||
#line 72 "lex.l"
|
||||
{ yylval.string = strdup(yytext); return STRING; }
|
||||
YY_BREAK
|
||||
case 15:
|
||||
YY_RULE_SETUP
|
||||
#line 73 "lex.l"
|
||||
{ return *yytext; }
|
||||
YY_BREAK
|
||||
case 16:
|
||||
YY_RULE_SETUP
|
||||
#line 74 "lex.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 876 ""
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
yyterminate();
|
||||
|
||||
@ -1809,6 +1834,10 @@ void yyfree (void * ptr )
|
||||
|
||||
#define YYTABLES_NAME "yytables"
|
||||
|
||||
#line 74 "lex.l"
|
||||
|
||||
|
||||
|
||||
#ifndef yywrap /* XXX */
|
||||
int
|
||||
yywrap ()
|
||||
|
@ -31,6 +31,7 @@ static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
|
||||
|
||||
extern int YYPARSE_DECL();
|
||||
|
||||
#line 2 ""
|
||||
/*
|
||||
* Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
@ -81,10 +82,12 @@ extern char *yytext;
|
||||
#define YYMALLOC malloc
|
||||
#define YYFREE free
|
||||
|
||||
#line 54 ""
|
||||
typedef union {
|
||||
char *string;
|
||||
int number;
|
||||
} YYSTYPE;
|
||||
#line 90 ""
|
||||
#define ET 257
|
||||
#define INDEX 258
|
||||
#define PREFIX 259
|
||||
@ -258,6 +261,7 @@ YYSTYPE yylval;
|
||||
|
||||
/* variables for the parser stack */
|
||||
static YYSTACKDATA yystack;
|
||||
#line 144 ""
|
||||
|
||||
static long
|
||||
name2number(const char *str)
|
||||
@ -289,6 +293,7 @@ yyerror (char *s)
|
||||
{
|
||||
_lex_error_message ("%s\n", s);
|
||||
}
|
||||
#line 296 ""
|
||||
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
|
||||
static int yygrowstack(YYSTACKDATA *data)
|
||||
{
|
||||
@ -491,11 +496,13 @@ yyreduce:
|
||||
switch (yyn)
|
||||
{
|
||||
case 5:
|
||||
#line 74 ""
|
||||
{
|
||||
id_str = yystack.l_mark[0].string;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
#line 80 ""
|
||||
{
|
||||
base_id = name2number(yystack.l_mark[0].string);
|
||||
strlcpy(name, yystack.l_mark[0].string, sizeof(name));
|
||||
@ -503,6 +510,7 @@ case 6:
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
#line 86 ""
|
||||
{
|
||||
base_id = name2number(yystack.l_mark[-1].string);
|
||||
strlcpy(name, yystack.l_mark[0].string, sizeof(name));
|
||||
@ -511,11 +519,13 @@ case 7:
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
#line 99 ""
|
||||
{
|
||||
number = yystack.l_mark[0].number;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
#line 103 ""
|
||||
{
|
||||
free(prefix);
|
||||
asprintf (&prefix, "%s_", yystack.l_mark[0].string);
|
||||
@ -525,6 +535,7 @@ case 11:
|
||||
}
|
||||
break;
|
||||
case 12:
|
||||
#line 111 ""
|
||||
{
|
||||
prefix = realloc(prefix, 1);
|
||||
if (prefix == NULL)
|
||||
@ -533,6 +544,7 @@ case 12:
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
#line 118 ""
|
||||
{
|
||||
struct error_code *ec = malloc(sizeof(*ec));
|
||||
|
||||
@ -554,10 +566,12 @@ case 13:
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
#line 138 ""
|
||||
{
|
||||
YYACCEPT;
|
||||
}
|
||||
break;
|
||||
#line 574 ""
|
||||
}
|
||||
yystack.s_mark -= yym;
|
||||
yystate = *yystack.s_mark;
|
||||
|
@ -33,7 +33,7 @@
|
||||
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||
|
||||
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
|
||||
* if you want the limit (max/min) macros for int types.
|
||||
* if you want the limit (max/min) macros for int types.
|
||||
*/
|
||||
#ifndef __STDC_LIMIT_MACROS
|
||||
#define __STDC_LIMIT_MACROS 1
|
||||
@ -50,7 +50,7 @@ typedef uint32_t flex_uint32_t;
|
||||
typedef signed char flex_int8_t;
|
||||
typedef short int flex_int16_t;
|
||||
typedef int flex_int32_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned short int flex_uint16_t;
|
||||
typedef unsigned int flex_uint32_t;
|
||||
#endif /* ! C99 */
|
||||
@ -161,7 +161,7 @@ extern FILE *yyin, *yyout;
|
||||
#define EOB_ACT_LAST_MATCH 2
|
||||
|
||||
#define YY_LESS_LINENO(n)
|
||||
|
||||
|
||||
/* Return all but the first "n" matched characters back to the input stream. */
|
||||
#define yyless(n) \
|
||||
do \
|
||||
@ -223,7 +223,7 @@ struct yy_buffer_state
|
||||
|
||||
int yy_bs_lineno; /**< The line count. */
|
||||
int yy_bs_column; /**< The column count. */
|
||||
|
||||
|
||||
/* Whether to try to fill the input buffer when we reach the
|
||||
* end of it.
|
||||
*/
|
||||
@ -467,6 +467,8 @@ int yy_flex_debug = 0;
|
||||
#define YY_MORE_ADJ 0
|
||||
#define YY_RESTORE_YY_MORE_OFFSET
|
||||
char *yytext;
|
||||
#line 1 "sel-lex.l"
|
||||
#line 2 "sel-lex.l"
|
||||
/*
|
||||
* Copyright (c) 2004, 2008 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
@ -532,6 +534,8 @@ struct hx_expr_input _hx509_expr_input;
|
||||
|
||||
#undef ECHO
|
||||
|
||||
#line 538 "lex.yy.c"
|
||||
|
||||
#define INITIAL 0
|
||||
|
||||
#ifndef YY_NO_UNISTD_H
|
||||
@ -590,7 +594,7 @@ extern int yywrap (void );
|
||||
#endif
|
||||
|
||||
static void yyunput (int c,char *buf_ptr );
|
||||
|
||||
|
||||
#ifndef yytext_ptr
|
||||
static void yy_flex_strncpy (char *,yyconst char *,int );
|
||||
#endif
|
||||
@ -711,7 +715,12 @@ YY_DECL
|
||||
register yy_state_type yy_current_state;
|
||||
register char *yy_cp, *yy_bp;
|
||||
register int yy_act;
|
||||
|
||||
|
||||
#line 68 "sel-lex.l"
|
||||
|
||||
|
||||
#line 723 "lex.yy.c"
|
||||
|
||||
if ( !(yy_init) )
|
||||
{
|
||||
(yy_init) = 1;
|
||||
@ -795,30 +804,37 @@ do_action: /* This label is used only to access EOF actions. */
|
||||
|
||||
case 1:
|
||||
YY_RULE_SETUP
|
||||
#line 70 "sel-lex.l"
|
||||
{ return kw_TRUE; }
|
||||
YY_BREAK
|
||||
case 2:
|
||||
YY_RULE_SETUP
|
||||
#line 71 "sel-lex.l"
|
||||
{ return kw_FALSE; }
|
||||
YY_BREAK
|
||||
case 3:
|
||||
YY_RULE_SETUP
|
||||
#line 72 "sel-lex.l"
|
||||
{ return kw_AND; }
|
||||
YY_BREAK
|
||||
case 4:
|
||||
YY_RULE_SETUP
|
||||
#line 73 "sel-lex.l"
|
||||
{ return kw_OR; }
|
||||
YY_BREAK
|
||||
case 5:
|
||||
YY_RULE_SETUP
|
||||
#line 74 "sel-lex.l"
|
||||
{ return kw_IN; }
|
||||
YY_BREAK
|
||||
case 6:
|
||||
YY_RULE_SETUP
|
||||
#line 75 "sel-lex.l"
|
||||
{ return kw_TAILMATCH; }
|
||||
YY_BREAK
|
||||
case 7:
|
||||
YY_RULE_SETUP
|
||||
#line 77 "sel-lex.l"
|
||||
{
|
||||
yylval.string = strdup ((const char *)yytext);
|
||||
return IDENTIFIER;
|
||||
@ -826,25 +842,31 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 8:
|
||||
YY_RULE_SETUP
|
||||
#line 81 "sel-lex.l"
|
||||
{ yylval.string = handle_string(); return STRING; }
|
||||
YY_BREAK
|
||||
case 9:
|
||||
/* rule 9 can match eol */
|
||||
YY_RULE_SETUP
|
||||
#line 82 "sel-lex.l"
|
||||
{ ++lineno; }
|
||||
YY_BREAK
|
||||
case 10:
|
||||
YY_RULE_SETUP
|
||||
#line 83 "sel-lex.l"
|
||||
{ return *yytext; }
|
||||
YY_BREAK
|
||||
case 11:
|
||||
YY_RULE_SETUP
|
||||
#line 84 "sel-lex.l"
|
||||
;
|
||||
YY_BREAK
|
||||
case 12:
|
||||
YY_RULE_SETUP
|
||||
#line 85 "sel-lex.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 870 "lex.yy.c"
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
yyterminate();
|
||||
|
||||
@ -986,7 +1008,7 @@ case YY_STATE_EOF(INITIAL):
|
||||
*/
|
||||
static int yy_get_next_buffer (void)
|
||||
{
|
||||
register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
|
||||
register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
|
||||
register char *source = (yytext_ptr);
|
||||
register int number_to_move, i;
|
||||
int ret_val;
|
||||
@ -1122,7 +1144,7 @@ static int yy_get_next_buffer (void)
|
||||
{
|
||||
register yy_state_type yy_current_state;
|
||||
register char *yy_cp;
|
||||
|
||||
|
||||
yy_current_state = (yy_start);
|
||||
|
||||
for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
|
||||
@ -1153,7 +1175,7 @@ static int yy_get_next_buffer (void)
|
||||
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
|
||||
{
|
||||
register int yy_is_jam;
|
||||
register char *yy_cp = (yy_c_buf_p);
|
||||
register char *yy_cp = (yy_c_buf_p);
|
||||
|
||||
register YY_CHAR yy_c = 1;
|
||||
if ( yy_accept[yy_current_state] )
|
||||
@ -1176,7 +1198,7 @@ static int yy_get_next_buffer (void)
|
||||
static void yyunput (int c, register char * yy_bp )
|
||||
{
|
||||
register char *yy_cp;
|
||||
|
||||
|
||||
yy_cp = (yy_c_buf_p);
|
||||
|
||||
/* undo effects of setting up yytext */
|
||||
@ -1219,7 +1241,7 @@ static int yy_get_next_buffer (void)
|
||||
|
||||
{
|
||||
int c;
|
||||
|
||||
|
||||
*(yy_c_buf_p) = (yy_hold_char);
|
||||
|
||||
if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
|
||||
@ -1286,12 +1308,12 @@ static int yy_get_next_buffer (void)
|
||||
|
||||
/** Immediately switch to a different input stream.
|
||||
* @param input_file A readable stream.
|
||||
*
|
||||
*
|
||||
* @note This function does not reset the start condition to @c INITIAL .
|
||||
*/
|
||||
void yyrestart (FILE * input_file )
|
||||
{
|
||||
|
||||
|
||||
if ( ! YY_CURRENT_BUFFER ){
|
||||
yyensure_buffer_stack ();
|
||||
YY_CURRENT_BUFFER_LVALUE =
|
||||
@ -1304,11 +1326,11 @@ static int yy_get_next_buffer (void)
|
||||
|
||||
/** Switch to a different input buffer.
|
||||
* @param new_buffer The new input buffer.
|
||||
*
|
||||
*
|
||||
*/
|
||||
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
|
||||
{
|
||||
|
||||
|
||||
/* TODO. We should be able to replace this entire function body
|
||||
* with
|
||||
* yypop_buffer_state();
|
||||
@ -1339,7 +1361,7 @@ static int yy_get_next_buffer (void)
|
||||
|
||||
static void yy_load_buffer_state (void)
|
||||
{
|
||||
(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
|
||||
(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
|
||||
(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
|
||||
yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
|
||||
(yy_hold_char) = *(yy_c_buf_p);
|
||||
@ -1348,13 +1370,13 @@ static void yy_load_buffer_state (void)
|
||||
/** Allocate and initialize an input buffer state.
|
||||
* @param file A readable stream.
|
||||
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
|
||||
*
|
||||
*
|
||||
* @return the allocated buffer state.
|
||||
*/
|
||||
YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
|
||||
{
|
||||
YY_BUFFER_STATE b;
|
||||
|
||||
|
||||
b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
|
||||
if ( ! b )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
|
||||
@ -1377,11 +1399,11 @@ static void yy_load_buffer_state (void)
|
||||
|
||||
/** Destroy the buffer.
|
||||
* @param b a buffer created with yy_create_buffer()
|
||||
*
|
||||
*
|
||||
*/
|
||||
void yy_delete_buffer (YY_BUFFER_STATE b )
|
||||
{
|
||||
|
||||
|
||||
if ( ! b )
|
||||
return;
|
||||
|
||||
@ -1397,7 +1419,7 @@ static void yy_load_buffer_state (void)
|
||||
#ifndef __cplusplus
|
||||
extern int isatty (int );
|
||||
#endif /* __cplusplus */
|
||||
|
||||
|
||||
/* Initializes or reinitializes a buffer.
|
||||
* This function is sometimes called more than once on the same buffer,
|
||||
* such as during a yyrestart() or at EOF.
|
||||
@ -1406,7 +1428,7 @@ extern int isatty (int );
|
||||
|
||||
{
|
||||
int oerrno = errno;
|
||||
|
||||
|
||||
yy_flush_buffer(b );
|
||||
|
||||
b->yy_input_file = file;
|
||||
@ -1422,17 +1444,17 @@ extern int isatty (int );
|
||||
}
|
||||
|
||||
b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
|
||||
|
||||
|
||||
errno = oerrno;
|
||||
}
|
||||
|
||||
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
|
||||
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
|
||||
*
|
||||
*
|
||||
*/
|
||||
void yy_flush_buffer (YY_BUFFER_STATE b )
|
||||
{
|
||||
if ( ! b )
|
||||
if ( ! b )
|
||||
return;
|
||||
|
||||
b->yy_n_chars = 0;
|
||||
@ -1457,11 +1479,11 @@ extern int isatty (int );
|
||||
* the current state. This function will allocate the stack
|
||||
* if necessary.
|
||||
* @param new_buffer The new state.
|
||||
*
|
||||
*
|
||||
*/
|
||||
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
|
||||
{
|
||||
if (new_buffer == NULL)
|
||||
if (new_buffer == NULL)
|
||||
return;
|
||||
|
||||
yyensure_buffer_stack();
|
||||
@ -1487,11 +1509,11 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
|
||||
|
||||
/** Removes and deletes the top of the stack, if present.
|
||||
* The next element becomes the new top.
|
||||
*
|
||||
*
|
||||
*/
|
||||
void yypop_buffer_state (void)
|
||||
{
|
||||
if (!YY_CURRENT_BUFFER)
|
||||
if (!YY_CURRENT_BUFFER)
|
||||
return;
|
||||
|
||||
yy_delete_buffer(YY_CURRENT_BUFFER );
|
||||
@ -1511,7 +1533,7 @@ void yypop_buffer_state (void)
|
||||
static void yyensure_buffer_stack (void)
|
||||
{
|
||||
int num_to_alloc;
|
||||
|
||||
|
||||
if (!(yy_buffer_stack)) {
|
||||
|
||||
/* First allocation is just for 2 elements, since we don't know if this
|
||||
@ -1524,9 +1546,9 @@ static void yyensure_buffer_stack (void)
|
||||
);
|
||||
if ( ! (yy_buffer_stack) )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
|
||||
|
||||
|
||||
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
|
||||
|
||||
|
||||
(yy_buffer_stack_max) = num_to_alloc;
|
||||
(yy_buffer_stack_top) = 0;
|
||||
return;
|
||||
@ -1554,13 +1576,13 @@ static void yyensure_buffer_stack (void)
|
||||
/** Setup the input buffer state to scan directly from a user-specified character buffer.
|
||||
* @param base the character buffer
|
||||
* @param size the size in bytes of the character buffer
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
|
||||
{
|
||||
YY_BUFFER_STATE b;
|
||||
|
||||
|
||||
if ( size < 2 ||
|
||||
base[size-2] != YY_END_OF_BUFFER_CHAR ||
|
||||
base[size-1] != YY_END_OF_BUFFER_CHAR )
|
||||
@ -1589,14 +1611,14 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
|
||||
/** Setup the input buffer state to scan a string. The next call to yylex() will
|
||||
* scan from a @e copy of @a str.
|
||||
* @param yystr a NUL-terminated string to scan
|
||||
*
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
* @note If you want to scan bytes that may contain NUL values, then use
|
||||
* yy_scan_bytes() instead.
|
||||
*/
|
||||
YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
|
||||
{
|
||||
|
||||
|
||||
return yy_scan_bytes(yystr,strlen(yystr) );
|
||||
}
|
||||
|
||||
@ -1604,7 +1626,7 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
|
||||
* scan from a @e copy of @a bytes.
|
||||
* @param bytes the byte buffer to scan
|
||||
* @param len the number of bytes in the buffer pointed to by @a bytes.
|
||||
*
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
|
||||
@ -1613,7 +1635,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
|
||||
char *buf;
|
||||
yy_size_t n;
|
||||
int i;
|
||||
|
||||
|
||||
/* Get memory for full buffer, including space for trailing EOB's. */
|
||||
n = _yybytes_len + 2;
|
||||
buf = (char *) yyalloc(n );
|
||||
@ -1643,7 +1665,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
|
||||
|
||||
static void yy_fatal_error (yyconst char* msg )
|
||||
{
|
||||
(void) fprintf( stderr, "%s\n", msg );
|
||||
(void) fprintf( stderr, "%s\n", msg );
|
||||
exit( YY_EXIT_FAILURE );
|
||||
}
|
||||
|
||||
@ -1667,16 +1689,16 @@ static void yy_fatal_error (yyconst char* msg )
|
||||
/* Accessor methods (get/set functions) to struct members. */
|
||||
|
||||
/** Get the current line number.
|
||||
*
|
||||
*
|
||||
*/
|
||||
int yyget_lineno (void)
|
||||
{
|
||||
|
||||
|
||||
return yylineno;
|
||||
}
|
||||
|
||||
/** Get the input stream.
|
||||
*
|
||||
*
|
||||
*/
|
||||
FILE *yyget_in (void)
|
||||
{
|
||||
@ -1684,7 +1706,7 @@ FILE *yyget_in (void)
|
||||
}
|
||||
|
||||
/** Get the output stream.
|
||||
*
|
||||
*
|
||||
*/
|
||||
FILE *yyget_out (void)
|
||||
{
|
||||
@ -1692,7 +1714,7 @@ FILE *yyget_out (void)
|
||||
}
|
||||
|
||||
/** Get the length of the current token.
|
||||
*
|
||||
*
|
||||
*/
|
||||
int yyget_leng (void)
|
||||
{
|
||||
@ -1700,7 +1722,7 @@ int yyget_leng (void)
|
||||
}
|
||||
|
||||
/** Get the current token.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
char *yyget_text (void)
|
||||
@ -1710,18 +1732,18 @@ char *yyget_text (void)
|
||||
|
||||
/** Set the current line number.
|
||||
* @param line_number
|
||||
*
|
||||
*
|
||||
*/
|
||||
void yyset_lineno (int line_number )
|
||||
{
|
||||
|
||||
|
||||
yylineno = line_number;
|
||||
}
|
||||
|
||||
/** Set the input stream. This does not discard the current
|
||||
* input buffer.
|
||||
* @param in_str A readable stream.
|
||||
*
|
||||
*
|
||||
* @see yy_switch_to_buffer
|
||||
*/
|
||||
void yyset_in (FILE * in_str )
|
||||
@ -1775,7 +1797,7 @@ static int yy_init_globals (void)
|
||||
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
|
||||
int yylex_destroy (void)
|
||||
{
|
||||
|
||||
|
||||
/* Pop the buffer stack, destroying each element. */
|
||||
while(YY_CURRENT_BUFFER){
|
||||
yy_delete_buffer(YY_CURRENT_BUFFER );
|
||||
@ -1842,6 +1864,10 @@ void yyfree (void * ptr )
|
||||
|
||||
#define YYTABLES_NAME "yytables"
|
||||
|
||||
#line 85 "sel-lex.l"
|
||||
|
||||
|
||||
|
||||
static char *
|
||||
handle_string(void)
|
||||
{
|
||||
@ -1895,4 +1921,3 @@ lex_input(char *buf, int max_size)
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
|
@ -31,6 +31,7 @@ static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
|
||||
|
||||
extern int YYPARSE_DECL();
|
||||
|
||||
#line 35 ""
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
@ -39,10 +40,12 @@ extern int YYPARSE_DECL();
|
||||
#include <hx_locl.h>
|
||||
|
||||
|
||||
#line 45 ""
|
||||
typedef union {
|
||||
char *string;
|
||||
struct hx_expr *expr;
|
||||
} YYSTYPE;
|
||||
#line 48 ""
|
||||
#define kw_TRUE 257
|
||||
#define kw_FALSE 258
|
||||
#define kw_AND 259
|
||||
@ -433,83 +436,109 @@ yyreduce:
|
||||
switch (yyn)
|
||||
{
|
||||
case 1:
|
||||
#line 73 ""
|
||||
{ _hx509_expr_input.expr = yystack.l_mark[0].expr; }
|
||||
break;
|
||||
case 2:
|
||||
#line 75 ""
|
||||
{ yyval.expr = _hx509_make_expr(op_TRUE, NULL, NULL); }
|
||||
break;
|
||||
case 3:
|
||||
#line 76 ""
|
||||
{ yyval.expr = _hx509_make_expr(op_FALSE, NULL, NULL); }
|
||||
break;
|
||||
case 4:
|
||||
#line 77 ""
|
||||
{ yyval.expr = _hx509_make_expr(op_NOT, yystack.l_mark[0].expr, NULL); }
|
||||
break;
|
||||
case 5:
|
||||
#line 78 ""
|
||||
{ yyval.expr = _hx509_make_expr(op_AND, yystack.l_mark[-2].expr, yystack.l_mark[0].expr); }
|
||||
break;
|
||||
case 6:
|
||||
#line 79 ""
|
||||
{ yyval.expr = _hx509_make_expr(op_OR, yystack.l_mark[-2].expr, yystack.l_mark[0].expr); }
|
||||
break;
|
||||
case 7:
|
||||
#line 80 ""
|
||||
{ yyval.expr = yystack.l_mark[-1].expr; }
|
||||
break;
|
||||
case 8:
|
||||
#line 81 ""
|
||||
{ yyval.expr = _hx509_make_expr(op_COMP, yystack.l_mark[0].expr, NULL); }
|
||||
break;
|
||||
case 9:
|
||||
#line 84 ""
|
||||
{ yyval.expr = _hx509_make_expr(expr_WORDS, yystack.l_mark[0].expr, NULL); }
|
||||
break;
|
||||
case 10:
|
||||
#line 85 ""
|
||||
{ yyval.expr = _hx509_make_expr(expr_WORDS, yystack.l_mark[-2].expr, yystack.l_mark[0].expr); }
|
||||
break;
|
||||
case 11:
|
||||
#line 88 ""
|
||||
{ yyval.expr = _hx509_make_expr(comp_EQ, yystack.l_mark[-3].expr, yystack.l_mark[0].expr); }
|
||||
break;
|
||||
case 12:
|
||||
#line 89 ""
|
||||
{ yyval.expr = _hx509_make_expr(comp_NE, yystack.l_mark[-3].expr, yystack.l_mark[0].expr); }
|
||||
break;
|
||||
case 13:
|
||||
#line 90 ""
|
||||
{ yyval.expr = _hx509_make_expr(comp_TAILEQ, yystack.l_mark[-2].expr, yystack.l_mark[0].expr); }
|
||||
break;
|
||||
case 14:
|
||||
#line 91 ""
|
||||
{ yyval.expr = _hx509_make_expr(comp_IN, yystack.l_mark[-4].expr, yystack.l_mark[-1].expr); }
|
||||
break;
|
||||
case 15:
|
||||
#line 92 ""
|
||||
{ yyval.expr = _hx509_make_expr(comp_IN, yystack.l_mark[-2].expr, yystack.l_mark[0].expr); }
|
||||
break;
|
||||
case 16:
|
||||
#line 95 ""
|
||||
{ yyval.expr = yystack.l_mark[0].expr; }
|
||||
break;
|
||||
case 17:
|
||||
#line 96 ""
|
||||
{ yyval.expr = yystack.l_mark[0].expr; }
|
||||
break;
|
||||
case 18:
|
||||
#line 97 ""
|
||||
{ yyval.expr = yystack.l_mark[0].expr; }
|
||||
break;
|
||||
case 19:
|
||||
#line 98 ""
|
||||
{ yyval.expr = yystack.l_mark[0].expr; }
|
||||
break;
|
||||
case 20:
|
||||
#line 101 ""
|
||||
{ yyval.expr = _hx509_make_expr(expr_NUMBER, yystack.l_mark[0].string, NULL); }
|
||||
break;
|
||||
case 21:
|
||||
#line 102 ""
|
||||
{ yyval.expr = _hx509_make_expr(expr_STRING, yystack.l_mark[0].string, NULL); }
|
||||
break;
|
||||
case 22:
|
||||
#line 104 ""
|
||||
{
|
||||
yyval.expr = _hx509_make_expr(expr_FUNCTION, yystack.l_mark[-3].string, yystack.l_mark[-1].expr); }
|
||||
break;
|
||||
case 23:
|
||||
#line 107 ""
|
||||
{ yyval.expr = yystack.l_mark[-1].expr; }
|
||||
break;
|
||||
case 24:
|
||||
#line 110 ""
|
||||
{
|
||||
yyval.expr = _hx509_make_expr(expr_VAR, yystack.l_mark[-2].string, yystack.l_mark[0].expr); }
|
||||
break;
|
||||
case 25:
|
||||
#line 112 ""
|
||||
{
|
||||
yyval.expr = _hx509_make_expr(expr_VAR, yystack.l_mark[0].string, NULL); }
|
||||
break;
|
||||
#line 541 ""
|
||||
}
|
||||
yystack.s_mark -= yym;
|
||||
yystate = *yystack.s_mark;
|
||||
|
@ -468,6 +468,8 @@ int yy_flex_debug = 0;
|
||||
#define YY_MORE_ADJ 0
|
||||
#define YY_RESTORE_YY_MORE_OFFSET
|
||||
char *yytext;
|
||||
#line 1 "sel-lex.l"
|
||||
#line 2 "sel-lex.l"
|
||||
/*
|
||||
* Copyright (c) 2004, 2008 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
@ -533,6 +535,8 @@ struct hx_expr_input _hx509_expr_input;
|
||||
|
||||
#undef ECHO
|
||||
|
||||
#line 538 ""
|
||||
|
||||
#define INITIAL 0
|
||||
|
||||
#ifndef YY_NO_UNISTD_H
|
||||
@ -713,6 +717,11 @@ YY_DECL
|
||||
register char *yy_cp, *yy_bp;
|
||||
register int yy_act;
|
||||
|
||||
#line 68 "sel-lex.l"
|
||||
|
||||
|
||||
#line 723 ""
|
||||
|
||||
if ( !(yy_init) )
|
||||
{
|
||||
(yy_init) = 1;
|
||||
@ -796,30 +805,37 @@ do_action: /* This label is used only to access EOF actions. */
|
||||
|
||||
case 1:
|
||||
YY_RULE_SETUP
|
||||
#line 70 "sel-lex.l"
|
||||
{ return kw_TRUE; }
|
||||
YY_BREAK
|
||||
case 2:
|
||||
YY_RULE_SETUP
|
||||
#line 71 "sel-lex.l"
|
||||
{ return kw_FALSE; }
|
||||
YY_BREAK
|
||||
case 3:
|
||||
YY_RULE_SETUP
|
||||
#line 72 "sel-lex.l"
|
||||
{ return kw_AND; }
|
||||
YY_BREAK
|
||||
case 4:
|
||||
YY_RULE_SETUP
|
||||
#line 73 "sel-lex.l"
|
||||
{ return kw_OR; }
|
||||
YY_BREAK
|
||||
case 5:
|
||||
YY_RULE_SETUP
|
||||
#line 74 "sel-lex.l"
|
||||
{ return kw_IN; }
|
||||
YY_BREAK
|
||||
case 6:
|
||||
YY_RULE_SETUP
|
||||
#line 75 "sel-lex.l"
|
||||
{ return kw_TAILMATCH; }
|
||||
YY_BREAK
|
||||
case 7:
|
||||
YY_RULE_SETUP
|
||||
#line 77 "sel-lex.l"
|
||||
{
|
||||
yylval.string = strdup ((const char *)yytext);
|
||||
return IDENTIFIER;
|
||||
@ -827,25 +843,31 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 8:
|
||||
YY_RULE_SETUP
|
||||
#line 81 "sel-lex.l"
|
||||
{ yylval.string = handle_string(); return STRING; }
|
||||
YY_BREAK
|
||||
case 9:
|
||||
/* rule 9 can match eol */
|
||||
YY_RULE_SETUP
|
||||
#line 82 "sel-lex.l"
|
||||
{ ++lineno; }
|
||||
YY_BREAK
|
||||
case 10:
|
||||
YY_RULE_SETUP
|
||||
#line 83 "sel-lex.l"
|
||||
{ return *yytext; }
|
||||
YY_BREAK
|
||||
case 11:
|
||||
YY_RULE_SETUP
|
||||
#line 84 "sel-lex.l"
|
||||
;
|
||||
YY_BREAK
|
||||
case 12:
|
||||
YY_RULE_SETUP
|
||||
#line 85 "sel-lex.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 870 ""
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
yyterminate();
|
||||
|
||||
@ -1843,6 +1865,10 @@ void yyfree (void * ptr )
|
||||
|
||||
#define YYTABLES_NAME "yytables"
|
||||
|
||||
#line 85 "sel-lex.l"
|
||||
|
||||
|
||||
|
||||
static char *
|
||||
handle_string(void)
|
||||
{
|
||||
|
@ -24,8 +24,7 @@ call_lex() {
|
||||
|
||||
cd $dir
|
||||
|
||||
# --noline specified because line directives cause more bother than they solve (including possibly invalid DWARF headers if the filename ends up as "")
|
||||
$LEX --noline $lfile || exit 1
|
||||
$LEX $lfile || exit 1
|
||||
|
||||
if [ -r lex.yy.c ]; then
|
||||
echo "#include \"config.h\"" > $base.c
|
||||
@ -60,8 +59,7 @@ call_yacc() {
|
||||
|
||||
cd $dir
|
||||
|
||||
# -l specified because line directives cause more bother than they solve (including possibly invalid DWARF headers if the filename ends up as "")
|
||||
$YACC -l -d $yfile || exit 1
|
||||
$YACC -d $yfile || exit 1
|
||||
if [ -r y.tab.h -a -r y.tab.c ];then
|
||||
sed -e "/^#/!b" -e "s|y\.tab\.h|$SRC|" -e "s|\"$base.y|\"$SRC|" y.tab.h > $base.h
|
||||
sed -e "s|y\.tab\.c|$SRC|" -e "s|\"$base.y|\"$SRC|" y.tab.c > $base.c
|
||||
|
Loading…
Reference in New Issue
Block a user