s4:heimdal: readd heimdal/lib/asn1/asn1parse.y which was parse.y before the last...
authorStefan Metzmacher <metze@samba.org>
Mon, 6 Jul 2009 11:26:09 +0000 (13:26 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 6 Jul 2009 11:28:11 +0000 (13:28 +0200)
Also commit the regenerated files for systems without yacc and lex.

This fixes the build with automatic dependecies for me.

metze

source4/heimdal/lib/asn1/asn1parse.c [moved from source4/heimdal/lib/asn1/parse.c with 95% similarity]
source4/heimdal/lib/asn1/asn1parse.h [moved from source4/heimdal/lib/asn1/parse.h with 98% similarity]
source4/heimdal/lib/asn1/asn1parse.y [new file with mode: 0644]
source4/heimdal/lib/asn1/lex.c
source4/heimdal/lib/com_err/lex.c
source4/heimdal/lib/com_err/parse.c
source4/heimdal/lib/com_err/parse.h
source4/heimdal/lib/hx509/sel-gram.c
source4/heimdal/lib/hx509/sel-gram.h
source4/heimdal_build/internal.mk

similarity index 95%
rename from source4/heimdal/lib/asn1/parse.c
rename to source4/heimdal/lib/asn1/asn1parse.c
index 5e73953b24f752b41c9085a88050bbaa5001e40b..5dbb63b392e753b92b48077de12d5b54c877c066 100644 (file)
 
 
 /* Copy the first part of user declarations.  */
-#line 36 "heimdal/lib/asn1/parse.y"
+#line 36 "heimdal/lib/asn1/asn1parse.y"
+
 
-#ifdef HAVE_CONFIG_H
 #include <config.h>
-#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -298,7 +298,7 @@ struct string_list {
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 65 "heimdal/lib/asn1/parse.y"
+#line 65 "heimdal/lib/asn1/asn1parse.y"
 {
     int constant;
     struct value *value;
@@ -314,7 +314,7 @@ typedef union YYSTYPE
     struct constraint_spec *constraint_spec;
 }
 /* Line 187 of yacc.c.  */
-#line 318 "heimdal/lib/asn1/parse.y"
+#line 318 "heimdal/lib/asn1/asn1parse.y"
        YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -327,7 +327,7 @@ typedef union YYSTYPE
 
 
 /* Line 216 of yacc.c.  */
-#line 331 "heimdal/lib/asn1/parse.y"
+#line 331 "heimdal/lib/asn1/asn1parse.y"
 
 #ifdef short
 # undef short
@@ -1762,29 +1762,29 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 235 "heimdal/lib/asn1/parse.y"
+#line 235 "heimdal/lib/asn1/asn1parse.y"
     {
                        checkundefined();
                }
     break;
 
   case 4:
-#line 242 "heimdal/lib/asn1/parse.y"
+#line 242 "heimdal/lib/asn1/asn1parse.y"
     { error_message("implicit tagging is not supported"); }
     break;
 
   case 5:
-#line 244 "heimdal/lib/asn1/parse.y"
+#line 244 "heimdal/lib/asn1/asn1parse.y"
     { error_message("automatic tagging is not supported"); }
     break;
 
   case 7:
-#line 249 "heimdal/lib/asn1/parse.y"
+#line 249 "heimdal/lib/asn1/asn1parse.y"
     { error_message("no extensibility options supported"); }
     break;
 
   case 17:
-#line 270 "heimdal/lib/asn1/parse.y"
+#line 270 "heimdal/lib/asn1/asn1parse.y"
     {
                    struct string_list *sl;
                    for(sl = (yyvsp[(1) - (4)].sl); sl != NULL; sl = sl->next) {
@@ -1796,7 +1796,7 @@ yyreduce:
     break;
 
   case 22:
-#line 289 "heimdal/lib/asn1/parse.y"
+#line 289 "heimdal/lib/asn1/asn1parse.y"
     {
                    (yyval.sl) = emalloc(sizeof(*(yyval.sl)));
                    (yyval.sl)->string = (yyvsp[(1) - (3)].name);
@@ -1805,7 +1805,7 @@ yyreduce:
     break;
 
   case 23:
-#line 295 "heimdal/lib/asn1/parse.y"
+#line 295 "heimdal/lib/asn1/asn1parse.y"
     {
                    (yyval.sl) = emalloc(sizeof(*(yyval.sl)));
                    (yyval.sl)->string = (yyvsp[(1) - (1)].name);
@@ -1814,7 +1814,7 @@ yyreduce:
     break;
 
   case 24:
-#line 303 "heimdal/lib/asn1/parse.y"
+#line 303 "heimdal/lib/asn1/asn1parse.y"
     {
                    Symbol *s = addsym ((yyvsp[(1) - (3)].name));
                    s->stype = Stype;
@@ -1825,7 +1825,7 @@ yyreduce:
     break;
 
   case 42:
-#line 334 "heimdal/lib/asn1/parse.y"
+#line 334 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_Boolean,
                                     TE_EXPLICIT, new_type(TBoolean));
@@ -1833,7 +1833,7 @@ yyreduce:
     break;
 
   case 43:
-#line 341 "heimdal/lib/asn1/parse.y"
+#line 341 "heimdal/lib/asn1/asn1parse.y"
     {
                    if((yyvsp[(2) - (5)].value)->type != integervalue)
                        error_message("Non-integer used in first part of range");
@@ -1846,8 +1846,8 @@ yyreduce:
     break;
 
   case 44:
-#line 351 "heimdal/lib/asn1/parse.y"
-    {          
+#line 351 "heimdal/lib/asn1/asn1parse.y"
+    {  
                    if((yyvsp[(2) - (5)].value)->type != integervalue)
                        error_message("Non-integer in first part of range");
                    (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));
@@ -1857,8 +1857,8 @@ yyreduce:
     break;
 
   case 45:
-#line 359 "heimdal/lib/asn1/parse.y"
-    {          
+#line 359 "heimdal/lib/asn1/asn1parse.y"
+    {  
                    if((yyvsp[(4) - (5)].value)->type != integervalue)
                        error_message("Non-integer in second part of range");
                    (yyval.range) = ecalloc(1, sizeof(*(yyval.range)));
@@ -1868,7 +1868,7 @@ yyreduce:
     break;
 
   case 46:
-#line 367 "heimdal/lib/asn1/parse.y"
+#line 367 "heimdal/lib/asn1/asn1parse.y"
     {
                    if((yyvsp[(2) - (3)].value)->type != integervalue)
                        error_message("Non-integer used in limit");
@@ -1879,7 +1879,7 @@ yyreduce:
     break;
 
   case 47:
-#line 378 "heimdal/lib/asn1/parse.y"
+#line 378 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_Integer,
                                     TE_EXPLICIT, new_type(TInteger));
@@ -1887,7 +1887,7 @@ yyreduce:
     break;
 
   case 48:
-#line 383 "heimdal/lib/asn1/parse.y"
+#line 383 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_type(TInteger);
                        (yyval.type)->range = (yyvsp[(2) - (2)].range);
@@ -1896,7 +1896,7 @@ yyreduce:
     break;
 
   case 49:
-#line 389 "heimdal/lib/asn1/parse.y"
+#line 389 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TInteger);
                  (yyval.type)->members = (yyvsp[(3) - (4)].members);
@@ -1905,7 +1905,7 @@ yyreduce:
     break;
 
   case 50:
-#line 397 "heimdal/lib/asn1/parse.y"
+#line 397 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.members) = emalloc(sizeof(*(yyval.members)));
                        ASN1_TAILQ_INIT((yyval.members));
@@ -1914,7 +1914,7 @@ yyreduce:
     break;
 
   case 51:
-#line 403 "heimdal/lib/asn1/parse.y"
+#line 403 "heimdal/lib/asn1/asn1parse.y"
     {
                        ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members);
                        (yyval.members) = (yyvsp[(1) - (3)].members);
@@ -1922,12 +1922,12 @@ yyreduce:
     break;
 
   case 52:
-#line 408 "heimdal/lib/asn1/parse.y"
+#line 408 "heimdal/lib/asn1/asn1parse.y"
     { (yyval.members) = (yyvsp[(1) - (3)].members); }
     break;
 
   case 53:
-#line 412 "heimdal/lib/asn1/parse.y"
+#line 412 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.member) = emalloc(sizeof(*(yyval.member)));
                        (yyval.member)->name = (yyvsp[(1) - (4)].name);
@@ -1941,7 +1941,7 @@ yyreduce:
     break;
 
   case 54:
-#line 425 "heimdal/lib/asn1/parse.y"
+#line 425 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TInteger);
                  (yyval.type)->members = (yyvsp[(3) - (4)].members);
@@ -1950,7 +1950,7 @@ yyreduce:
     break;
 
   case 56:
-#line 436 "heimdal/lib/asn1/parse.y"
+#line 436 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TBitString);
                  (yyval.type)->members = emalloc(sizeof(*(yyval.type)->members));
@@ -1960,7 +1960,7 @@ yyreduce:
     break;
 
   case 57:
-#line 443 "heimdal/lib/asn1/parse.y"
+#line 443 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TBitString);
                  (yyval.type)->members = (yyvsp[(4) - (5)].members);
@@ -1969,7 +1969,7 @@ yyreduce:
     break;
 
   case 58:
-#line 451 "heimdal/lib/asn1/parse.y"
+#line 451 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_OID,
                                     TE_EXPLICIT, new_type(TOID));
@@ -1977,7 +1977,7 @@ yyreduce:
     break;
 
   case 59:
-#line 457 "heimdal/lib/asn1/parse.y"
+#line 457 "heimdal/lib/asn1/asn1parse.y"
     {
                    Type *t = new_type(TOctetString);
                    t->range = (yyvsp[(3) - (3)].range);
@@ -1987,7 +1987,7 @@ yyreduce:
     break;
 
   case 60:
-#line 466 "heimdal/lib/asn1/parse.y"
+#line 466 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_Null,
                                     TE_EXPLICIT, new_type(TNull));
@@ -1995,17 +1995,17 @@ yyreduce:
     break;
 
   case 61:
-#line 473 "heimdal/lib/asn1/parse.y"
+#line 473 "heimdal/lib/asn1/asn1parse.y"
     { (yyval.range) = NULL; }
     break;
 
   case 62:
-#line 475 "heimdal/lib/asn1/parse.y"
+#line 475 "heimdal/lib/asn1/asn1parse.y"
     { (yyval.range) = (yyvsp[(2) - (2)].range); }
     break;
 
   case 63:
-#line 480 "heimdal/lib/asn1/parse.y"
+#line 480 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TSequence);
                  (yyval.type)->members = (yyvsp[(3) - (4)].members);
@@ -2014,7 +2014,7 @@ yyreduce:
     break;
 
   case 64:
-#line 486 "heimdal/lib/asn1/parse.y"
+#line 486 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TSequence);
                  (yyval.type)->members = NULL;
@@ -2023,7 +2023,7 @@ yyreduce:
     break;
 
   case 65:
-#line 494 "heimdal/lib/asn1/parse.y"
+#line 494 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TSequenceOf);
                  (yyval.type)->range = (yyvsp[(2) - (4)].range);
@@ -2033,7 +2033,7 @@ yyreduce:
     break;
 
   case 66:
-#line 503 "heimdal/lib/asn1/parse.y"
+#line 503 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TSet);
                  (yyval.type)->members = (yyvsp[(3) - (4)].members);
@@ -2042,7 +2042,7 @@ yyreduce:
     break;
 
   case 67:
-#line 509 "heimdal/lib/asn1/parse.y"
+#line 509 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TSet);
                  (yyval.type)->members = NULL;
@@ -2051,7 +2051,7 @@ yyreduce:
     break;
 
   case 68:
-#line 517 "heimdal/lib/asn1/parse.y"
+#line 517 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TSetOf);
                  (yyval.type)->subtype = (yyvsp[(3) - (3)].type);
@@ -2060,7 +2060,7 @@ yyreduce:
     break;
 
   case 69:
-#line 525 "heimdal/lib/asn1/parse.y"
+#line 525 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.type) = new_type(TChoice);
                  (yyval.type)->members = (yyvsp[(3) - (4)].members);
@@ -2068,7 +2068,7 @@ yyreduce:
     break;
 
   case 72:
-#line 536 "heimdal/lib/asn1/parse.y"
+#line 536 "heimdal/lib/asn1/asn1parse.y"
     {
                  Symbol *s = addsym((yyvsp[(1) - (1)].name));
                  (yyval.type) = new_type(TType);
@@ -2080,7 +2080,7 @@ yyreduce:
     break;
 
   case 73:
-#line 547 "heimdal/lib/asn1/parse.y"
+#line 547 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_GeneralizedTime,
                                     TE_EXPLICIT, new_type(TGeneralizedTime));
@@ -2088,7 +2088,7 @@ yyreduce:
     break;
 
   case 74:
-#line 552 "heimdal/lib/asn1/parse.y"
+#line 552 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_UTCTime,
                                     TE_EXPLICIT, new_type(TUTCTime));
@@ -2096,7 +2096,7 @@ yyreduce:
     break;
 
   case 75:
-#line 559 "heimdal/lib/asn1/parse.y"
+#line 559 "heimdal/lib/asn1/asn1parse.y"
     {
                    /* if (Constraint.type == contentConstrant) {
                       assert(Constraint.u.constraint.type == octetstring|bitstring-w/o-NamedBitList); // remember to check type reference too
@@ -2112,14 +2112,14 @@ yyreduce:
     break;
 
   case 76:
-#line 575 "heimdal/lib/asn1/parse.y"
+#line 575 "heimdal/lib/asn1/asn1parse.y"
     {
                    (yyval.constraint_spec) = (yyvsp[(2) - (3)].constraint_spec);
                }
     break;
 
   case 80:
-#line 588 "heimdal/lib/asn1/parse.y"
+#line 588 "heimdal/lib/asn1/asn1parse.y"
     {
                    (yyval.constraint_spec) = new_constraint_spec(CT_CONTENTS);
                    (yyval.constraint_spec)->u.content.type = (yyvsp[(2) - (2)].type);
@@ -2128,7 +2128,7 @@ yyreduce:
     break;
 
   case 81:
-#line 594 "heimdal/lib/asn1/parse.y"
+#line 594 "heimdal/lib/asn1/asn1parse.y"
     {
                    if ((yyvsp[(3) - (3)].value)->type != objectidentifiervalue)
                        error_message("Non-OID used in ENCODED BY constraint");
@@ -2139,7 +2139,7 @@ yyreduce:
     break;
 
   case 82:
-#line 602 "heimdal/lib/asn1/parse.y"
+#line 602 "heimdal/lib/asn1/asn1parse.y"
     {
                    if ((yyvsp[(5) - (5)].value)->type != objectidentifiervalue)
                        error_message("Non-OID used in ENCODED BY constraint");
@@ -2150,14 +2150,14 @@ yyreduce:
     break;
 
   case 83:
-#line 612 "heimdal/lib/asn1/parse.y"
+#line 612 "heimdal/lib/asn1/asn1parse.y"
     {
                    (yyval.constraint_spec) = new_constraint_spec(CT_USER);
                }
     break;
 
   case 84:
-#line 618 "heimdal/lib/asn1/parse.y"
+#line 618 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_type(TTag);
                        (yyval.type)->tag = (yyvsp[(1) - (3)].tag);
@@ -2171,7 +2171,7 @@ yyreduce:
     break;
 
   case 85:
-#line 631 "heimdal/lib/asn1/parse.y"
+#line 631 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.tag).tagclass = (yyvsp[(2) - (4)].constant);
                        (yyval.tag).tagvalue = (yyvsp[(3) - (4)].constant);
@@ -2180,56 +2180,56 @@ yyreduce:
     break;
 
   case 86:
-#line 639 "heimdal/lib/asn1/parse.y"
+#line 639 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.constant) = ASN1_C_CONTEXT;
                }
     break;
 
   case 87:
-#line 643 "heimdal/lib/asn1/parse.y"
+#line 643 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.constant) = ASN1_C_UNIV;
                }
     break;
 
   case 88:
-#line 647 "heimdal/lib/asn1/parse.y"
+#line 647 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.constant) = ASN1_C_APPL;
                }
     break;
 
   case 89:
-#line 651 "heimdal/lib/asn1/parse.y"
+#line 651 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.constant) = ASN1_C_PRIVATE;
                }
     break;
 
   case 90:
-#line 657 "heimdal/lib/asn1/parse.y"
+#line 657 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.constant) = TE_EXPLICIT;
                }
     break;
 
   case 91:
-#line 661 "heimdal/lib/asn1/parse.y"
+#line 661 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.constant) = TE_EXPLICIT;
                }
     break;
 
   case 92:
-#line 665 "heimdal/lib/asn1/parse.y"
+#line 665 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.constant) = TE_IMPLICIT;
                }
     break;
 
   case 93:
-#line 672 "heimdal/lib/asn1/parse.y"
+#line 672 "heimdal/lib/asn1/asn1parse.y"
     {
                        Symbol *s;
                        s = addsym ((yyvsp[(1) - (4)].name));
@@ -2241,7 +2241,7 @@ yyreduce:
     break;
 
   case 95:
-#line 686 "heimdal/lib/asn1/parse.y"
+#line 686 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_GeneralString,
                                     TE_EXPLICIT, new_type(TGeneralString));
@@ -2249,7 +2249,7 @@ yyreduce:
     break;
 
   case 96:
-#line 691 "heimdal/lib/asn1/parse.y"
+#line 691 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_UTF8String,
                                     TE_EXPLICIT, new_type(TUTF8String));
@@ -2257,7 +2257,7 @@ yyreduce:
     break;
 
   case 97:
-#line 696 "heimdal/lib/asn1/parse.y"
+#line 696 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_PrintableString,
                                     TE_EXPLICIT, new_type(TPrintableString));
@@ -2265,7 +2265,7 @@ yyreduce:
     break;
 
   case 98:
-#line 701 "heimdal/lib/asn1/parse.y"
+#line 701 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_VisibleString,
                                     TE_EXPLICIT, new_type(TVisibleString));
@@ -2273,7 +2273,7 @@ yyreduce:
     break;
 
   case 99:
-#line 706 "heimdal/lib/asn1/parse.y"
+#line 706 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_IA5String,
                                     TE_EXPLICIT, new_type(TIA5String));
@@ -2281,7 +2281,7 @@ yyreduce:
     break;
 
   case 100:
-#line 711 "heimdal/lib/asn1/parse.y"
+#line 711 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_BMPString,
                                     TE_EXPLICIT, new_type(TBMPString));
@@ -2289,7 +2289,7 @@ yyreduce:
     break;
 
   case 101:
-#line 716 "heimdal/lib/asn1/parse.y"
+#line 716 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.type) = new_tag(ASN1_C_UNIV, UT_UniversalString,
                                     TE_EXPLICIT, new_type(TUniversalString));
@@ -2297,7 +2297,7 @@ yyreduce:
     break;
 
   case 102:
-#line 724 "heimdal/lib/asn1/parse.y"
+#line 724 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.members) = emalloc(sizeof(*(yyval.members)));
                        ASN1_TAILQ_INIT((yyval.members));
@@ -2306,7 +2306,7 @@ yyreduce:
     break;
 
   case 103:
-#line 730 "heimdal/lib/asn1/parse.y"
+#line 730 "heimdal/lib/asn1/asn1parse.y"
     {
                        ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members);
                        (yyval.members) = (yyvsp[(1) - (3)].members);
@@ -2314,7 +2314,7 @@ yyreduce:
     break;
 
   case 104:
-#line 735 "heimdal/lib/asn1/parse.y"
+#line 735 "heimdal/lib/asn1/asn1parse.y"
     {
                        struct member *m = ecalloc(1, sizeof(*m));
                        m->name = estrdup("...");
@@ -2326,7 +2326,7 @@ yyreduce:
     break;
 
   case 105:
-#line 746 "heimdal/lib/asn1/parse.y"
+#line 746 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.member) = emalloc(sizeof(*(yyval.member)));
                  (yyval.member)->name = (yyvsp[(1) - (2)].name);
@@ -2338,7 +2338,7 @@ yyreduce:
     break;
 
   case 106:
-#line 757 "heimdal/lib/asn1/parse.y"
+#line 757 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.member) = (yyvsp[(1) - (1)].member);
                        (yyval.member)->optional = 0;
@@ -2347,7 +2347,7 @@ yyreduce:
     break;
 
   case 107:
-#line 763 "heimdal/lib/asn1/parse.y"
+#line 763 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.member) = (yyvsp[(1) - (2)].member);
                        (yyval.member)->optional = 1;
@@ -2356,7 +2356,7 @@ yyreduce:
     break;
 
   case 108:
-#line 769 "heimdal/lib/asn1/parse.y"
+#line 769 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.member) = (yyvsp[(1) - (3)].member);
                        (yyval.member)->optional = 0;
@@ -2365,7 +2365,7 @@ yyreduce:
     break;
 
   case 109:
-#line 777 "heimdal/lib/asn1/parse.y"
+#line 777 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.members) = emalloc(sizeof(*(yyval.members)));
                        ASN1_TAILQ_INIT((yyval.members));
@@ -2374,7 +2374,7 @@ yyreduce:
     break;
 
   case 110:
-#line 783 "heimdal/lib/asn1/parse.y"
+#line 783 "heimdal/lib/asn1/asn1parse.y"
     {
                        ASN1_TAILQ_INSERT_TAIL((yyvsp[(1) - (3)].members), (yyvsp[(3) - (3)].member), members);
                        (yyval.members) = (yyvsp[(1) - (3)].members);
@@ -2382,7 +2382,7 @@ yyreduce:
     break;
 
   case 111:
-#line 790 "heimdal/lib/asn1/parse.y"
+#line 790 "heimdal/lib/asn1/asn1parse.y"
     {
                  (yyval.member) = emalloc(sizeof(*(yyval.member)));
                  (yyval.member)->name = (yyvsp[(1) - (4)].name);
@@ -2396,26 +2396,26 @@ yyreduce:
     break;
 
   case 113:
-#line 803 "heimdal/lib/asn1/parse.y"
+#line 803 "heimdal/lib/asn1/asn1parse.y"
     { (yyval.objid) = NULL; }
     break;
 
   case 114:
-#line 807 "heimdal/lib/asn1/parse.y"
+#line 807 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.objid) = (yyvsp[(2) - (3)].objid);
                }
     break;
 
   case 115:
-#line 813 "heimdal/lib/asn1/parse.y"
+#line 813 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.objid) = NULL;
                }
     break;
 
   case 116:
-#line 817 "heimdal/lib/asn1/parse.y"
+#line 817 "heimdal/lib/asn1/asn1parse.y"
     {
                        if ((yyvsp[(2) - (2)].objid)) {
                                (yyval.objid) = (yyvsp[(2) - (2)].objid);
@@ -2427,14 +2427,14 @@ yyreduce:
     break;
 
   case 117:
-#line 828 "heimdal/lib/asn1/parse.y"
+#line 828 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.objid) = new_objid((yyvsp[(1) - (4)].name), (yyvsp[(3) - (4)].constant));
                }
     break;
 
   case 118:
-#line 832 "heimdal/lib/asn1/parse.y"
+#line 832 "heimdal/lib/asn1/asn1parse.y"
     {
                    Symbol *s = addsym((yyvsp[(1) - (1)].name));
                    if(s->stype != SValue ||
@@ -2448,14 +2448,14 @@ yyreduce:
     break;
 
   case 119:
-#line 843 "heimdal/lib/asn1/parse.y"
+#line 843 "heimdal/lib/asn1/asn1parse.y"
     {
                    (yyval.objid) = new_objid(NULL, (yyvsp[(1) - (1)].constant));
                }
     break;
 
   case 129:
-#line 866 "heimdal/lib/asn1/parse.y"
+#line 866 "heimdal/lib/asn1/asn1parse.y"
     {
                        Symbol *s = addsym((yyvsp[(1) - (1)].name));
                        if(s->stype != SValue)
@@ -2467,7 +2467,7 @@ yyreduce:
     break;
 
   case 130:
-#line 877 "heimdal/lib/asn1/parse.y"
+#line 877 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.value) = emalloc(sizeof(*(yyval.value)));
                        (yyval.value)->type = stringvalue;
@@ -2476,7 +2476,7 @@ yyreduce:
     break;
 
   case 131:
-#line 885 "heimdal/lib/asn1/parse.y"
+#line 885 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.value) = emalloc(sizeof(*(yyval.value)));
                        (yyval.value)->type = booleanvalue;
@@ -2485,7 +2485,7 @@ yyreduce:
     break;
 
   case 132:
-#line 891 "heimdal/lib/asn1/parse.y"
+#line 891 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.value) = emalloc(sizeof(*(yyval.value)));
                        (yyval.value)->type = booleanvalue;
@@ -2494,7 +2494,7 @@ yyreduce:
     break;
 
   case 133:
-#line 899 "heimdal/lib/asn1/parse.y"
+#line 899 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.value) = emalloc(sizeof(*(yyval.value)));
                        (yyval.value)->type = integervalue;
@@ -2503,13 +2503,13 @@ yyreduce:
     break;
 
   case 135:
-#line 910 "heimdal/lib/asn1/parse.y"
+#line 910 "heimdal/lib/asn1/asn1parse.y"
     {
                }
     break;
 
   case 136:
-#line 915 "heimdal/lib/asn1/parse.y"
+#line 915 "heimdal/lib/asn1/asn1parse.y"
     {
                        (yyval.value) = emalloc(sizeof(*(yyval.value)));
                        (yyval.value)->type = objectidentifiervalue;
@@ -2519,7 +2519,7 @@ yyreduce:
 
 
 /* Line 1267 of yacc.c.  */
-#line 2523 "heimdal/lib/asn1/parse.y"
+#line 2523 "heimdal/lib/asn1/asn1parse.y"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2733,7 +2733,7 @@ yyreturn:
 }
 
 
-#line 922 "heimdal/lib/asn1/parse.y"
+#line 922 "heimdal/lib/asn1/asn1parse.y"
 
 
 void
similarity index 98%
rename from source4/heimdal/lib/asn1/parse.h
rename to source4/heimdal/lib/asn1/asn1parse.h
index bea506ca7b984ab873e6cae8128e8c1a1a833d24..67b9aacc0a5389b509598381c46ef52093134e7a 100644 (file)
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 65 "heimdal/lib/asn1/parse.y"
+#line 65 "heimdal/lib/asn1/asn1parse.y"
 {
     int constant;
     struct value *value;
@@ -238,7 +238,7 @@ typedef union YYSTYPE
     struct constraint_spec *constraint_spec;
 }
 /* Line 1489 of yacc.c.  */
-#line 242 "heimdal/lib/asn1/parse.y"
+#line 242 "heimdal/lib/asn1/asn1parse.y"
        YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
diff --git a/source4/heimdal/lib/asn1/asn1parse.y b/source4/heimdal/lib/asn1/asn1parse.y
new file mode 100644 (file)
index 0000000..7975fe4
--- /dev/null
@@ -0,0 +1,1015 @@
+/*
+ * Copyright (c) 1997 - 2007 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the Institute nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* $Id$ */
+
+%{
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "symbol.h"
+#include "lex.h"
+#include "gen_locl.h"
+#include "der.h"
+
+RCSID("$Id$");
+
+static Type *new_type (Typetype t);
+static struct constraint_spec *new_constraint_spec(enum ctype);
+static Type *new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype);
+void yyerror (const char *);
+static struct objid *new_objid(const char *label, int value);
+static void add_oid_to_tail(struct objid *, struct objid *);
+static void fix_labels(Symbol *s);
+
+struct string_list {
+    char *string;
+    struct string_list *next;
+};
+
+%}
+
+%union {
+    int constant;
+    struct value *value;
+    struct range *range;
+    char *name;
+    Type *type;
+    Member *member;
+    struct objid *objid;
+    char *defval;
+    struct string_list *sl;
+    struct tagtype tag;
+    struct memhead *members;
+    struct constraint_spec *constraint_spec;
+}
+
+%token kw_ABSENT
+%token kw_ABSTRACT_SYNTAX
+%token kw_ALL
+%token kw_APPLICATION
+%token kw_AUTOMATIC
+%token kw_BEGIN
+%token kw_BIT
+%token kw_BMPString
+%token kw_BOOLEAN
+%token kw_BY
+%token kw_CHARACTER
+%token kw_CHOICE
+%token kw_CLASS
+%token kw_COMPONENT
+%token kw_COMPONENTS
+%token kw_CONSTRAINED
+%token kw_CONTAINING
+%token kw_DEFAULT
+%token kw_DEFINITIONS
+%token kw_EMBEDDED
+%token kw_ENCODED
+%token kw_END
+%token kw_ENUMERATED
+%token kw_EXCEPT
+%token kw_EXPLICIT
+%token kw_EXPORTS
+%token kw_EXTENSIBILITY
+%token kw_EXTERNAL
+%token kw_FALSE
+%token kw_FROM
+%token kw_GeneralString
+%token kw_GeneralizedTime
+%token kw_GraphicString
+%token kw_IA5String
+%token kw_IDENTIFIER
+%token kw_IMPLICIT
+%token kw_IMPLIED
+%token kw_IMPORTS
+%token kw_INCLUDES
+%token kw_INSTANCE
+%token kw_INTEGER
+%token kw_INTERSECTION
+%token kw_ISO646String
+%token kw_MAX
+%token kw_MIN
+%token kw_MINUS_INFINITY
+%token kw_NULL
+%token kw_NumericString
+%token kw_OBJECT
+%token kw_OCTET
+%token kw_OF
+%token kw_OPTIONAL
+%token kw_ObjectDescriptor
+%token kw_PATTERN
+%token kw_PDV
+%token kw_PLUS_INFINITY
+%token kw_PRESENT
+%token kw_PRIVATE
+%token kw_PrintableString
+%token kw_REAL
+%token kw_RELATIVE_OID
+%token kw_SEQUENCE
+%token kw_SET
+%token kw_SIZE
+%token kw_STRING
+%token kw_SYNTAX
+%token kw_T61String
+%token kw_TAGS
+%token kw_TRUE
+%token kw_TYPE_IDENTIFIER
+%token kw_TeletexString
+%token kw_UNION
+%token kw_UNIQUE
+%token kw_UNIVERSAL
+%token kw_UTCTime
+%token kw_UTF8String
+%token kw_UniversalString
+%token kw_VideotexString
+%token kw_VisibleString
+%token kw_WITH
+
+%token RANGE
+%token EEQUAL
+%token ELLIPSIS
+
+%token <name> IDENTIFIER  referencename
+%token <name> STRING
+
+%token <constant> NUMBER
+%type <constant> SignedNumber
+%type <constant> Class tagenv
+
+%type <value> Value
+%type <value> BuiltinValue
+%type <value> IntegerValue
+%type <value> BooleanValue
+%type <value> ObjectIdentifierValue
+%type <value> CharacterStringValue
+%type <value> NullValue
+%type <value> DefinedValue
+%type <value> ReferencedValue
+%type <value> Valuereference
+
+%type <type> Type
+%type <type> BuiltinType
+%type <type> BitStringType
+%type <type> BooleanType
+%type <type> ChoiceType
+%type <type> ConstrainedType
+%type <type> EnumeratedType
+%type <type> IntegerType
+%type <type> NullType
+%type <type> OctetStringType
+%type <type> SequenceType
+%type <type> SequenceOfType
+%type <type> SetType
+%type <type> SetOfType
+%type <type> TaggedType
+%type <type> ReferencedType
+%type <type> DefinedType
+%type <type> UsefulType
+%type <type> ObjectIdentifierType
+%type <type> CharacterStringType
+%type <type> RestrictedCharactedStringType
+
+%type <tag> Tag
+
+%type <member> ComponentType
+%type <member> NamedBit
+%type <member> NamedNumber
+%type <member> NamedType
+%type <members> ComponentTypeList
+%type <members> Enumerations
+%type <members> NamedBitList
+%type <members> NamedNumberList
+
+%type <objid> objid objid_list objid_element objid_opt
+%type <range> range size
+
+%type <sl> referencenames
+
+%type <constraint_spec> Constraint
+%type <constraint_spec> ConstraintSpec
+%type <constraint_spec> GeneralConstraint
+%type <constraint_spec> ContentsConstraint
+%type <constraint_spec> UserDefinedConstraint
+
+
+
+%start ModuleDefinition
+
+%%
+
+ModuleDefinition: IDENTIFIER objid_opt kw_DEFINITIONS TagDefault ExtensionDefault
+                       EEQUAL kw_BEGIN ModuleBody kw_END
+               {
+                       checkundefined();
+               }
+               ;
+
+TagDefault     : kw_EXPLICIT kw_TAGS
+               | kw_IMPLICIT kw_TAGS
+                     { error_message("implicit tagging is not supported"); }
+               | kw_AUTOMATIC kw_TAGS
+                     { error_message("automatic tagging is not supported"); }
+               | /* empty */
+               ;
+
+ExtensionDefault: kw_EXTENSIBILITY kw_IMPLIED
+                     { error_message("no extensibility options supported"); }
+               | /* empty */
+               ;
+
+ModuleBody     : /* Exports */ Imports AssignmentList
+               | /* empty */
+               ;
+
+Imports                : kw_IMPORTS SymbolsImported ';'
+               | /* empty */
+               ;
+
+SymbolsImported        : SymbolsFromModuleList
+               | /* empty */
+               ;
+
+SymbolsFromModuleList: SymbolsFromModule
+               | SymbolsFromModuleList SymbolsFromModule
+               ;
+
+SymbolsFromModule: referencenames kw_FROM IDENTIFIER objid_opt
+               {
+                   struct string_list *sl;
+                   for(sl = $1; sl != NULL; sl = sl->next) {
+                       Symbol *s = addsym(sl->string);
+                       s->stype = Stype;
+                   }
+                   add_import($3);
+               }
+               ;
+
+AssignmentList : Assignment
+               | Assignment AssignmentList
+               ;
+
+Assignment     : TypeAssignment
+               | ValueAssignment
+               ;
+
+referencenames : IDENTIFIER ',' referencenames
+               {
+                   $$ = emalloc(sizeof(*$$));
+                   $$->string = $1;
+                   $$->next = $3;
+               }
+               | IDENTIFIER
+               {
+                   $$ = emalloc(sizeof(*$$));
+                   $$->string = $1;
+                   $$->next = NULL;
+               }
+               ;
+
+TypeAssignment : IDENTIFIER EEQUAL Type
+               {
+                   Symbol *s = addsym ($1);
+                   s->stype = Stype;
+                   s->type = $3;
+                   fix_labels(s);
+                   generate_type (s);
+               }
+               ;
+
+Type           : BuiltinType
+               | ReferencedType
+               | ConstrainedType
+               ;
+
+BuiltinType    : BitStringType
+               | BooleanType
+               | CharacterStringType
+               | ChoiceType
+               | EnumeratedType
+               | IntegerType
+               | NullType
+               | ObjectIdentifierType
+               | OctetStringType
+               | SequenceType
+               | SequenceOfType
+               | SetType
+               | SetOfType
+               | TaggedType
+               ;
+
+BooleanType    : kw_BOOLEAN
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_Boolean,
+                                    TE_EXPLICIT, new_type(TBoolean));
+               }
+               ;
+
+range          : '(' Value RANGE Value ')'
+               {
+                   if($2->type != integervalue)
+                       error_message("Non-integer used in first part of range");
+                   if($2->type != integervalue)
+                       error_message("Non-integer in second part of range");
+                   $$ = ecalloc(1, sizeof(*$$));
+                   $$->min = $2->u.integervalue;
+                   $$->max = $4->u.integervalue;
+               }
+               | '(' Value RANGE kw_MAX ')'
+               {       
+                   if($2->type != integervalue)
+                       error_message("Non-integer in first part of range");
+                   $$ = ecalloc(1, sizeof(*$$));
+                   $$->min = $2->u.integervalue;
+                   $$->max = $2->u.integervalue - 1;
+               }
+               | '(' kw_MIN RANGE Value ')'
+               {       
+                   if($4->type != integervalue)
+                       error_message("Non-integer in second part of range");
+                   $$ = ecalloc(1, sizeof(*$$));
+                   $$->min = $4->u.integervalue + 2;
+                   $$->max = $4->u.integervalue;
+               }
+               | '(' Value ')'
+               {
+                   if($2->type != integervalue)
+                       error_message("Non-integer used in limit");
+                   $$ = ecalloc(1, sizeof(*$$));
+                   $$->min = $2->u.integervalue;
+                   $$->max = $2->u.integervalue;
+               }
+               ;
+
+
+IntegerType    : kw_INTEGER
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_Integer,
+                                    TE_EXPLICIT, new_type(TInteger));
+               }
+               | kw_INTEGER range
+               {
+                       $$ = new_type(TInteger);
+                       $$->range = $2;
+                       $$ = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, $$);
+               }
+               | kw_INTEGER '{' NamedNumberList '}'
+               {
+                 $$ = new_type(TInteger);
+                 $$->members = $3;
+                 $$ = new_tag(ASN1_C_UNIV, UT_Integer, TE_EXPLICIT, $$);
+               }
+               ;
+
+NamedNumberList        : NamedNumber
+               {
+                       $$ = emalloc(sizeof(*$$));
+                       ASN1_TAILQ_INIT($$);
+                       ASN1_TAILQ_INSERT_HEAD($$, $1, members);
+               }
+               | NamedNumberList ',' NamedNumber
+               {
+                       ASN1_TAILQ_INSERT_TAIL($1, $3, members);
+                       $$ = $1;
+               }
+               | NamedNumberList ',' ELLIPSIS
+                       { $$ = $1; } /* XXX used for Enumerations */
+               ;
+
+NamedNumber    : IDENTIFIER '(' SignedNumber ')'
+               {
+                       $$ = emalloc(sizeof(*$$));
+                       $$->name = $1;
+                       $$->gen_name = estrdup($1);
+                       output_name ($$->gen_name);
+                       $$->val = $3;
+                       $$->optional = 0;
+                       $$->ellipsis = 0;
+                       $$->type = NULL;
+               }
+               ;
+
+EnumeratedType : kw_ENUMERATED '{' Enumerations '}'
+               {
+                 $$ = new_type(TInteger);
+                 $$->members = $3;
+                 $$ = new_tag(ASN1_C_UNIV, UT_Enumerated, TE_EXPLICIT, $$);
+               }
+               ;
+
+Enumerations   : NamedNumberList /* XXX */
+               ;
+
+BitStringType  : kw_BIT kw_STRING
+               {
+                 $$ = new_type(TBitString);
+                 $$->members = emalloc(sizeof(*$$->members));
+                 ASN1_TAILQ_INIT($$->members);
+                 $$ = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, $$);
+               }
+               | kw_BIT kw_STRING '{' NamedBitList '}'
+               {
+                 $$ = new_type(TBitString);
+                 $$->members = $4;
+                 $$ = new_tag(ASN1_C_UNIV, UT_BitString, TE_EXPLICIT, $$);
+               }
+               ;
+
+ObjectIdentifierType: kw_OBJECT kw_IDENTIFIER
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_OID,
+                                    TE_EXPLICIT, new_type(TOID));
+               }
+               ;
+OctetStringType        : kw_OCTET kw_STRING size
+               {
+                   Type *t = new_type(TOctetString);
+                   t->range = $3;
+                   $$ = new_tag(ASN1_C_UNIV, UT_OctetString,
+                                TE_EXPLICIT, t);
+               }
+               ;
+
+NullType       : kw_NULL
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_Null,
+                                    TE_EXPLICIT, new_type(TNull));
+               }
+               ;
+
+size           :
+               { $$ = NULL; }
+               | kw_SIZE range
+               { $$ = $2; }
+               ;
+
+
+SequenceType   : kw_SEQUENCE '{' /* ComponentTypeLists */ ComponentTypeList '}'
+               {
+                 $$ = new_type(TSequence);
+                 $$->members = $3;
+                 $$ = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, $$);
+               }
+               | kw_SEQUENCE '{' '}'
+               {
+                 $$ = new_type(TSequence);
+                 $$->members = NULL;
+                 $$ = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, $$);
+               }
+               ;
+
+SequenceOfType : kw_SEQUENCE size kw_OF Type
+               {
+                 $$ = new_type(TSequenceOf);
+                 $$->range = $2;
+                 $$->subtype = $4;
+                 $$ = new_tag(ASN1_C_UNIV, UT_Sequence, TE_EXPLICIT, $$);
+               }
+               ;
+
+SetType                : kw_SET '{' /* ComponentTypeLists */ ComponentTypeList '}'
+               {
+                 $$ = new_type(TSet);
+                 $$->members = $3;
+                 $$ = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, $$);
+               }
+               | kw_SET '{' '}'
+               {
+                 $$ = new_type(TSet);
+                 $$->members = NULL;
+                 $$ = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, $$);
+               }
+               ;
+
+SetOfType      : kw_SET kw_OF Type
+               {
+                 $$ = new_type(TSetOf);
+                 $$->subtype = $3;
+                 $$ = new_tag(ASN1_C_UNIV, UT_Set, TE_EXPLICIT, $$);
+               }
+               ;
+
+ChoiceType     : kw_CHOICE '{' /* AlternativeTypeLists */ ComponentTypeList '}'
+               {
+                 $$ = new_type(TChoice);
+                 $$->members = $3;
+               }
+               ;
+
+ReferencedType : DefinedType
+               | UsefulType
+               ;
+
+DefinedType    : IDENTIFIER
+               {
+                 Symbol *s = addsym($1);
+                 $$ = new_type(TType);
+                 if(s->stype != Stype && s->stype != SUndefined)
+                   error_message ("%s is not a type\n", $1);
+                 else
+                   $$->symbol = s;
+               }
+               ;
+
+UsefulType     : kw_GeneralizedTime
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_GeneralizedTime,
+                                    TE_EXPLICIT, new_type(TGeneralizedTime));
+               }
+               | kw_UTCTime
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_UTCTime,
+                                    TE_EXPLICIT, new_type(TUTCTime));
+               }
+               ;
+
+ConstrainedType        : Type Constraint
+               {
+                   /* if (Constraint.type == contentConstrant) {
+                      assert(Constraint.u.constraint.type == octetstring|bitstring-w/o-NamedBitList); // remember to check type reference too
+                      if (Constraint.u.constraint.type) {
+                        assert((Constraint.u.constraint.type.length % 8) == 0);
+                      }
+                     }
+                     if (Constraint.u.constraint.encoding) {
+                       type == der-oid|ber-oid
+                     }
+                   */
+               }
+               ;
+
+
+Constraint     : '(' ConstraintSpec ')'
+               {
+                   $$ = $2;
+               }
+               ;
+
+ConstraintSpec : GeneralConstraint
+               ;
+
+GeneralConstraint: ContentsConstraint
+               | UserDefinedConstraint
+               ;
+
+ContentsConstraint: kw_CONTAINING Type
+               {
+                   $$ = new_constraint_spec(CT_CONTENTS);
+                   $$->u.content.type = $2;
+                   $$->u.content.encoding = NULL;
+               }
+               | kw_ENCODED kw_BY Value
+               {
+                   if ($3->type != objectidentifiervalue)
+                       error_message("Non-OID used in ENCODED BY constraint");
+                   $$ = new_constraint_spec(CT_CONTENTS);
+                   $$->u.content.type = NULL;
+                   $$->u.content.encoding = $3;
+               }
+               | kw_CONTAINING Type kw_ENCODED kw_BY Value
+               {
+                   if ($5->type != objectidentifiervalue)
+                       error_message("Non-OID used in ENCODED BY constraint");
+                   $$ = new_constraint_spec(CT_CONTENTS);
+                   $$->u.content.type = $2;
+                   $$->u.content.encoding = $5;
+               }
+               ;
+
+UserDefinedConstraint: kw_CONSTRAINED kw_BY '{' '}'
+               {
+                   $$ = new_constraint_spec(CT_USER);
+               }
+               ;
+
+TaggedType     : Tag tagenv Type
+               {
+                       $$ = new_type(TTag);
+                       $$->tag = $1;
+                       $$->tag.tagenv = $2;
+                       if($3->type == TTag && $2 == TE_IMPLICIT) {
+                               $$->subtype = $3->subtype;
+                               free($3);
+                       } else
+                               $$->subtype = $3;
+               }
+               ;
+
+Tag            : '[' Class NUMBER ']'
+               {
+                       $$.tagclass = $2;
+                       $$.tagvalue = $3;
+                       $$.tagenv = TE_EXPLICIT;
+               }
+               ;
+
+Class          : /* */
+               {
+                       $$ = ASN1_C_CONTEXT;
+               }
+               | kw_UNIVERSAL
+               {
+                       $$ = ASN1_C_UNIV;
+               }
+               | kw_APPLICATION
+               {
+                       $$ = ASN1_C_APPL;
+               }
+               | kw_PRIVATE
+               {
+                       $$ = ASN1_C_PRIVATE;
+               }
+               ;
+
+tagenv         : /* */
+               {
+                       $$ = TE_EXPLICIT;
+               }
+               | kw_EXPLICIT
+               {
+                       $$ = TE_EXPLICIT;
+               }
+               | kw_IMPLICIT
+               {
+                       $$ = TE_IMPLICIT;
+               }
+               ;
+
+
+ValueAssignment        : IDENTIFIER Type EEQUAL Value
+               {
+                       Symbol *s;
+                       s = addsym ($1);
+
+                       s->stype = SValue;
+                       s->value = $4;
+                       generate_constant (s);
+               }
+               ;
+
+CharacterStringType: RestrictedCharactedStringType
+               ;
+
+RestrictedCharactedStringType: kw_GeneralString
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_GeneralString,
+                                    TE_EXPLICIT, new_type(TGeneralString));
+               }
+               | kw_UTF8String
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_UTF8String,
+                                    TE_EXPLICIT, new_type(TUTF8String));
+               }
+               | kw_PrintableString
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_PrintableString,
+                                    TE_EXPLICIT, new_type(TPrintableString));
+               }
+               | kw_VisibleString
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_VisibleString,
+                                    TE_EXPLICIT, new_type(TVisibleString));
+               }
+               | kw_IA5String
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_IA5String,
+                                    TE_EXPLICIT, new_type(TIA5String));
+               }
+               | kw_BMPString
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_BMPString,
+                                    TE_EXPLICIT, new_type(TBMPString));
+               }
+               | kw_UniversalString
+               {
+                       $$ = new_tag(ASN1_C_UNIV, UT_UniversalString,
+                                    TE_EXPLICIT, new_type(TUniversalString));
+               }
+
+               ;
+
+ComponentTypeList: ComponentType
+               {
+                       $$ = emalloc(sizeof(*$$));
+                       ASN1_TAILQ_INIT($$);
+                       ASN1_TAILQ_INSERT_HEAD($$, $1, members);
+               }
+               | ComponentTypeList ',' ComponentType
+               {
+                       ASN1_TAILQ_INSERT_TAIL($1, $3, members);
+                       $$ = $1;
+               }
+               | ComponentTypeList ',' ELLIPSIS
+               {
+                       struct member *m = ecalloc(1, sizeof(*m));
+                       m->name = estrdup("...");
+                       m->gen_name = estrdup("asn1_ellipsis");
+                       m->ellipsis = 1;
+                       ASN1_TAILQ_INSERT_TAIL($1, m, members);
+                       $$ = $1;
+               }
+               ;
+
+NamedType      : IDENTIFIER Type
+               {
+                 $$ = emalloc(sizeof(*$$));
+                 $$->name = $1;
+                 $$->gen_name = estrdup($1);
+                 output_name ($$->gen_name);
+                 $$->type = $2;
+                 $$->ellipsis = 0;
+               }
+               ;
+
+ComponentType  : NamedType
+               {
+                       $$ = $1;
+                       $$->optional = 0;
+                       $$->defval = NULL;
+               }
+               | NamedType kw_OPTIONAL
+               {
+                       $$ = $1;
+                       $$->optional = 1;
+                       $$->defval = NULL;
+               }
+               | NamedType kw_DEFAULT Value
+               {
+                       $$ = $1;
+                       $$->optional = 0;
+                       $$->defval = $3;
+               }
+               ;
+
+NamedBitList   : NamedBit
+               {
+                       $$ = emalloc(sizeof(*$$));
+                       ASN1_TAILQ_INIT($$);
+                       ASN1_TAILQ_INSERT_HEAD($$, $1, members);
+               }
+               | NamedBitList ',' NamedBit
+               {
+                       ASN1_TAILQ_INSERT_TAIL($1, $3, members);
+                       $$ = $1;
+               }
+               ;
+
+NamedBit       : IDENTIFIER '(' NUMBER ')'
+               {
+                 $$ = emalloc(sizeof(*$$));
+                 $$->name = $1;
+                 $$->gen_name = estrdup($1);
+                 output_name ($$->gen_name);
+                 $$->val = $3;
+                 $$->optional = 0;
+                 $$->ellipsis = 0;
+                 $$->type = NULL;
+               }
+               ;
+
+objid_opt      : objid
+               | /* empty */ { $$ = NULL; }
+               ;
+
+objid          : '{' objid_list '}'
+               {
+                       $$ = $2;
+               }
+               ;
+
+objid_list     :  /* empty */
+               {
+                       $$ = NULL;
+               }
+               | objid_element objid_list
+               {
+                       if ($2) {
+                               $$ = $2;
+                               add_oid_to_tail($2, $1);
+                       } else {
+                               $$ = $1;
+                       }
+               }
+               ;
+
+objid_element  : IDENTIFIER '(' NUMBER ')'
+               {
+                       $$ = new_objid($1, $3);
+               }
+               | IDENTIFIER
+               {
+                   Symbol *s = addsym($1);
+                   if(s->stype != SValue ||
+                      s->value->type != objectidentifiervalue) {
+                       error_message("%s is not an object identifier\n",
+                                     s->name);
+                       exit(1);
+                   }
+                   $$ = s->value->u.objectidentifiervalue;
+               }
+               | NUMBER
+               {
+                   $$ = new_objid(NULL, $1);
+               }
+               ;
+
+Value          : BuiltinValue
+               | ReferencedValue
+               ;
+
+BuiltinValue   : BooleanValue
+               | CharacterStringValue
+               | IntegerValue
+               | ObjectIdentifierValue
+               | NullValue
+               ;
+
+ReferencedValue        : DefinedValue
+               ;
+
+DefinedValue   : Valuereference
+               ;
+
+Valuereference : IDENTIFIER
+               {
+                       Symbol *s = addsym($1);
+                       if(s->stype != SValue)
+                               error_message ("%s is not a value\n",
+                                               s->name);
+                       else
+                               $$ = s->value;
+               }
+               ;
+
+CharacterStringValue: STRING
+               {
+                       $$ = emalloc(sizeof(*$$));
+                       $$->type = stringvalue;
+                       $$->u.stringvalue = $1;
+               }
+               ;
+
+BooleanValue   : kw_TRUE
+               {
+                       $$ = emalloc(sizeof(*$$));
+                       $$->type = booleanvalue;
+                       $$->u.booleanvalue = 0;
+               }
+               | kw_FALSE
+               {
+                       $$ = emalloc(sizeof(*$$));
+                       $$->type = booleanvalue;
+                       $$->u.booleanvalue = 0;
+               }
+               ;
+
+IntegerValue   : SignedNumber
+               {
+                       $$ = emalloc(sizeof(*$$));
+                       $$->type = integervalue;
+                       $$->u.integervalue = $1;
+               }
+               ;
+
+SignedNumber   : NUMBER
+               ;
+
+NullValue      : kw_NULL
+               {
+               }
+               ;
+
+ObjectIdentifierValue: objid
+               {
+                       $$ = emalloc(sizeof(*$$));
+                       $$->type = objectidentifiervalue;
+                       $$->u.objectidentifiervalue = $1;
+               }
+               ;
+
+%%
+
+void
+yyerror (const char *s)
+{
+     error_message ("%s\n", s);
+}
+
+static Type *
+new_tag(int tagclass, int tagvalue, int tagenv, Type *oldtype)
+{
+    Type *t;
+    if(oldtype->type == TTag && oldtype->tag.tagenv == TE_IMPLICIT) {
+       t = oldtype;
+       oldtype = oldtype->subtype; /* XXX */
+    } else
+       t = new_type (TTag);
+
+    t->tag.tagclass = tagclass;
+    t->tag.tagvalue = tagvalue;
+    t->tag.tagenv = tagenv;
+    t->subtype = oldtype;
+    return t;
+}
+
+static struct objid *
+new_objid(const char *label, int value)
+{
+    struct objid *s;
+    s = emalloc(sizeof(*s));
+    s->label = label;
+    s->value = value;
+    s->next = NULL;
+    return s;
+}
+
+static void
+add_oid_to_tail(struct objid *head, struct objid *tail)
+{
+    struct objid *o;
+    o = head;
+    while (o->next)
+       o = o->next;
+    o->next = tail;
+}
+
+static Type *
+new_type (Typetype tt)
+{
+    Type *t = ecalloc(1, sizeof(*t));
+    t->type = tt;
+    return t;
+}
+
+static struct constraint_spec *
+new_constraint_spec(enum ctype ct)
+{
+    struct constraint_spec *c = ecalloc(1, sizeof(*c));
+    c->ctype = ct;
+    return c;
+}
+
+static void fix_labels2(Type *t, const char *prefix);
+static void fix_labels1(struct memhead *members, const char *prefix)
+{
+    Member *m;
+
+    if(members == NULL)
+       return;
+    ASN1_TAILQ_FOREACH(m, members, members) {
+       asprintf(&m->label, "%s_%s", prefix, m->gen_name);
+       if (m->label == NULL)
+           errx(1, "malloc");
+       if(m->type != NULL)
+           fix_labels2(m->type, m->label);
+    }
+}
+
+static void fix_labels2(Type *t, const char *prefix)
+{
+    for(; t; t = t->subtype)
+       fix_labels1(t->members, prefix);
+}
+
+static void
+fix_labels(Symbol *s)
+{
+    char *p;
+    asprintf(&p, "choice_%s", s->gen_name);
+    if (p == NULL)
+       errx(1, "malloc");
+    fix_labels2(s->type, p);
+    free(p);
+}
index 5eaa156f7b2338e86abb5ff4a78826bac87c7fd6..9fe039240d40b0c1972f2e05fee3fa664fbf62a1 100644 (file)
@@ -844,7 +844,7 @@ char *yytext;
 #endif
 #undef ECHO
 #include "symbol.h"
-#include "parse.h"
+#include "asn1parse.h"
 #include "lex.h"
 #include "gen_locl.h"
 
@@ -1590,7 +1590,7 @@ YY_RULE_SETUP
                            char *p = buf;
                            int f = 0;
                            int skip_ws = 0;
-                       
+               
                            while((c = input()) != EOF) {
                                if(isspace(c) && skip_ws) {
                                    if(c == '\n')
@@ -1598,7 +1598,7 @@ YY_RULE_SETUP
                                    continue;
                                }
                                skip_ws = 0;
-                               
+                       
                                if(c == '"') {
                                    if(f) {
                                        *p++ = '"';
index fbc14c998422dc99509bd1254c909a94d25c6097..a7ff6766fbe0c7b38c5836589cbe6baa423f401c 100644 (file)
@@ -527,8 +527,6 @@ char *yytext;
 #include "parse.h"
 #include "lex.h"
 
-RCSID("$Id$");
-
 static unsigned lineno = 1;
 static int getstring(void);
 
@@ -536,7 +534,7 @@ static int getstring(void);
 
 #undef ECHO
 
-#line 539 "heimdal/lib/com_err/lex.c"
+#line 537 "heimdal/lib/com_err/lex.c"
 
 #define INITIAL 0
 
@@ -689,9 +687,9 @@ YY_DECL
        register char *yy_cp, *yy_bp;
        register int yy_act;
     
-#line 59 "lex.l"
+#line 57 "lex.l"
 
-#line 694 "heimdal/lib/com_err/lex.c"
+#line 692 "heimdal/lib/com_err/lex.c"
 
        if ( !(yy_init) )
                {
@@ -776,86 +774,86 @@ do_action:        /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 60 "lex.l"
+#line 58 "lex.l"
 { return ET; }
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 61 "lex.l"
+#line 59 "lex.l"
 { return ET; }
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 62 "lex.l"
+#line 60 "lex.l"
 { return EC; }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 63 "lex.l"
+#line 61 "lex.l"
 { return EC; }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 64 "lex.l"
+#line 62 "lex.l"
 { return PREFIX; }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 65 "lex.l"
+#line 63 "lex.l"
 { return INDEX; }
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 66 "lex.l"
+#line 64 "lex.l"
 { return ID; }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 67 "lex.l"
+#line 65 "lex.l"
 { return END; }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 68 "lex.l"
+#line 66 "lex.l"
 { yylval.number = atoi(yytext); return NUMBER; }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 69 "lex.l"
+#line 67 "lex.l"
 ;
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 70 "lex.l"
+#line 68 "lex.l"
 ;
        YY_BREAK
 case 12:
 /* rule 12 can match eol */
 YY_RULE_SETUP
-#line 71 "lex.l"
+#line 69 "lex.l"
 { lineno++; }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 72 "lex.l"
+#line 70 "lex.l"
 { return getstring(); }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 73 "lex.l"
+#line 71 "lex.l"
 { yylval.string = strdup(yytext); return STRING; }
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 74 "lex.l"
+#line 72 "lex.l"
 { return *yytext; }
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 75 "lex.l"
+#line 73 "lex.l"
 ECHO;
        YY_BREAK
-#line 858 "heimdal/lib/com_err/lex.c"
+#line 856 "heimdal/lib/com_err/lex.c"
 case YY_STATE_EOF(INITIAL):
        yyterminate();
 
@@ -1853,7 +1851,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 75 "lex.l"
+#line 73 "lex.l"
 
 
 
index 70b6a1528f40a7c8ef2cf2c810d4f6be39b0a298..e089ccb31416ff77dbf5e98d4ba16bbd2375d093 100644 (file)
 #include "compile_et.h"
 #include "lex.h"
 
-RCSID("$Id$");
-
 void yyerror (char *s);
 static long name2number(const char *str);
 
@@ -163,13 +161,13 @@ extern char *yytext;
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 53 "heimdal/lib/com_err/parse.y"
+#line 51 "heimdal/lib/com_err/parse.y"
 {
   char *string;
   int number;
 }
 /* Line 187 of yacc.c.  */
-#line 173 "heimdal/lib/com_err/parse.y"
+#line 171 "heimdal/lib/com_err/parse.y"
        YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -182,7 +180,7 @@ typedef union YYSTYPE
 
 
 /* Line 216 of yacc.c.  */
-#line 186 "heimdal/lib/com_err/parse.y"
+#line 184 "heimdal/lib/com_err/parse.y"
 
 #ifdef short
 # undef short
@@ -469,8 +467,8 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint8 yyrline[] =
 {
-       0,    64,    64,    65,    68,    69,    72,    78,    84,    93,
-      94,    97,   101,   109,   116,   136
+       0,    62,    62,    63,    66,    67,    70,    76,    82,    91,
+      92,    95,    99,   107,   114,   134
 };
 #endif
 
@@ -1381,14 +1379,14 @@ yyreduce:
   switch (yyn)
     {
         case 6:
-#line 73 "heimdal/lib/com_err/parse.y"
+#line 71 "heimdal/lib/com_err/parse.y"
     {
                    id_str = (yyvsp[(2) - (2)].string);
                }
     break;
 
   case 7:
-#line 79 "heimdal/lib/com_err/parse.y"
+#line 77 "heimdal/lib/com_err/parse.y"
     {
                    base_id = name2number((yyvsp[(2) - (2)].string));
                    strlcpy(name, (yyvsp[(2) - (2)].string), sizeof(name));
@@ -1397,7 +1395,7 @@ yyreduce:
     break;
 
   case 8:
-#line 85 "heimdal/lib/com_err/parse.y"
+#line 83 "heimdal/lib/com_err/parse.y"
     {
                    base_id = name2number((yyvsp[(2) - (3)].string));
                    strlcpy(name, (yyvsp[(3) - (3)].string), sizeof(name));
@@ -1407,14 +1405,14 @@ yyreduce:
     break;
 
   case 11:
-#line 98 "heimdal/lib/com_err/parse.y"
+#line 96 "heimdal/lib/com_err/parse.y"
     {
                        number = (yyvsp[(2) - (2)].number);
                }
     break;
 
   case 12:
-#line 102 "heimdal/lib/com_err/parse.y"
+#line 100 "heimdal/lib/com_err/parse.y"
     {
                    free(prefix);
                    asprintf (&prefix, "%s_", (yyvsp[(2) - (2)].string));
@@ -1425,7 +1423,7 @@ yyreduce:
     break;
 
   case 13:
-#line 110 "heimdal/lib/com_err/parse.y"
+#line 108 "heimdal/lib/com_err/parse.y"
     {
                    prefix = realloc(prefix, 1);
                    if (prefix == NULL)
@@ -1435,7 +1433,7 @@ yyreduce:
     break;
 
   case 14:
-#line 117 "heimdal/lib/com_err/parse.y"
+#line 115 "heimdal/lib/com_err/parse.y"
     {
                    struct error_code *ec = malloc(sizeof(*ec));
                
@@ -1458,7 +1456,7 @@ yyreduce:
     break;
 
   case 15:
-#line 137 "heimdal/lib/com_err/parse.y"
+#line 135 "heimdal/lib/com_err/parse.y"
     {
                        YYACCEPT;
                }
@@ -1466,7 +1464,7 @@ yyreduce:
 
 
 /* Line 1267 of yacc.c.  */
-#line 1470 "heimdal/lib/com_err/parse.y"
+#line 1468 "heimdal/lib/com_err/parse.y"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -1680,7 +1678,7 @@ yyreturn:
 }
 
 
-#line 142 "heimdal/lib/com_err/parse.y"
+#line 140 "heimdal/lib/com_err/parse.y"
 
 
 static long
index 9aabca90236f4b732d92c6930a159af8e4e3c553..394d6505b3e6b4e34ef293a87b46bcda4dc38c04 100644 (file)
@@ -64,7 +64,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 53 "heimdal/lib/com_err/parse.y"
+#line 51 "heimdal/lib/com_err/parse.y"
 {
   char *string;
   int number;
index 4d9cf78c1b2bd83a8a3fc1ed75fef5c9e02b1a65..e89d6c9640e314c813830241ce9c1e2ac7cdce13 100644 (file)
 #include <stdlib.h>
 #include <hx_locl.h>
 
-RCSID("$Id$");
 
 
 
@@ -125,13 +124,13 @@ RCSID("$Id$");
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 46 "heimdal/lib/hx509/sel-gram.y"
+#line 45 "heimdal/lib/hx509/sel-gram.y"
 {
     char *string;
     struct hx_expr *expr;
 }
 /* Line 187 of yacc.c.  */
-#line 135 "heimdal/lib/hx509/sel-gram.y"
+#line 134 "heimdal/lib/hx509/sel-gram.y"
        YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -144,7 +143,7 @@ typedef union YYSTYPE
 
 
 /* Line 216 of yacc.c.  */
-#line 148 "heimdal/lib/hx509/sel-gram.y"
+#line 147 "heimdal/lib/hx509/sel-gram.y"
 
 #ifdef short
 # undef short
@@ -436,9 +435,9 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint8 yyrline[] =
 {
-       0,    74,    74,    76,    77,    78,    79,    80,    81,    82,
-      85,    86,    89,    90,    91,    92,    93,    96,    97,    98,
-      99,   102,   103,   105,   108,   111,   113
+       0,    73,    73,    75,    76,    77,    78,    79,    80,    81,
+      84,    85,    88,    89,    90,    91,    92,    95,    96,    97,
+      98,   101,   102,   104,   107,   110,   112
 };
 #endif
 
@@ -1368,136 +1367,136 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 74 "heimdal/lib/hx509/sel-gram.y"
+#line 73 "heimdal/lib/hx509/sel-gram.y"
     { _hx509_expr_input.expr = (yyvsp[(1) - (1)].expr); }
     break;
 
   case 3:
-#line 76 "heimdal/lib/hx509/sel-gram.y"
+#line 75 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(op_TRUE, NULL, NULL); }
     break;
 
   case 4:
-#line 77 "heimdal/lib/hx509/sel-gram.y"
+#line 76 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(op_FALSE, NULL, NULL); }
     break;
 
   case 5:
-#line 78 "heimdal/lib/hx509/sel-gram.y"
+#line 77 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(op_NOT, (yyvsp[(2) - (2)].expr), NULL); }
     break;
 
   case 6:
-#line 79 "heimdal/lib/hx509/sel-gram.y"
+#line 78 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(op_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
     break;
 
   case 7:
-#line 80 "heimdal/lib/hx509/sel-gram.y"
+#line 79 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(op_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
     break;
 
   case 8:
-#line 81 "heimdal/lib/hx509/sel-gram.y"
+#line 80 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = (yyvsp[(2) - (3)].expr); }
     break;
 
   case 9:
-#line 82 "heimdal/lib/hx509/sel-gram.y"
+#line 81 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(op_COMP, (yyvsp[(1) - (1)].expr), NULL); }
     break;
 
   case 10:
-#line 85 "heimdal/lib/hx509/sel-gram.y"
+#line 84 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(expr_WORDS, (yyvsp[(1) - (1)].expr), NULL); }
     break;
 
   case 11:
-#line 86 "heimdal/lib/hx509/sel-gram.y"
+#line 85 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(expr_WORDS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
     break;
 
   case 12:
-#line 89 "heimdal/lib/hx509/sel-gram.y"
+#line 88 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(comp_EQ, (yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].expr)); }
     break;
 
   case 13:
-#line 90 "heimdal/lib/hx509/sel-gram.y"
+#line 89 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(comp_NE, (yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].expr)); }
     break;
 
   case 14:
-#line 91 "heimdal/lib/hx509/sel-gram.y"
+#line 90 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(comp_TAILEQ, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
     break;
 
   case 15:
-#line 92 "heimdal/lib/hx509/sel-gram.y"
+#line 91 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(comp_IN, (yyvsp[(1) - (5)].expr), (yyvsp[(4) - (5)].expr)); }
     break;
 
   case 16:
-#line 93 "heimdal/lib/hx509/sel-gram.y"
+#line 92 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(comp_IN, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
     break;
 
   case 17:
-#line 96 "heimdal/lib/hx509/sel-gram.y"
+#line 95 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = (yyvsp[(1) - (1)].expr); }
     break;
 
   case 18:
-#line 97 "heimdal/lib/hx509/sel-gram.y"
+#line 96 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = (yyvsp[(1) - (1)].expr); }
     break;
 
   case 19:
-#line 98 "heimdal/lib/hx509/sel-gram.y"
+#line 97 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = (yyvsp[(1) - (1)].expr); }
     break;
 
   case 20:
-#line 99 "heimdal/lib/hx509/sel-gram.y"
+#line 98 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = (yyvsp[(1) - (1)].expr); }
     break;
 
   case 21:
-#line 102 "heimdal/lib/hx509/sel-gram.y"
+#line 101 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(expr_NUMBER, (yyvsp[(1) - (1)].string), NULL); }
     break;
 
   case 22:
-#line 103 "heimdal/lib/hx509/sel-gram.y"
+#line 102 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = _hx509_make_expr(expr_STRING, (yyvsp[(1) - (1)].string), NULL); }
     break;
 
   case 23:
-#line 105 "heimdal/lib/hx509/sel-gram.y"
+#line 104 "heimdal/lib/hx509/sel-gram.y"
     {
                        (yyval.expr) = _hx509_make_expr(expr_FUNCTION, (yyvsp[(1) - (4)].string), (yyvsp[(3) - (4)].expr)); }
     break;
 
   case 24:
-#line 108 "heimdal/lib/hx509/sel-gram.y"
+#line 107 "heimdal/lib/hx509/sel-gram.y"
     { (yyval.expr) = (yyvsp[(3) - (4)].expr); }
     break;
 
   case 25:
-#line 111 "heimdal/lib/hx509/sel-gram.y"
+#line 110 "heimdal/lib/hx509/sel-gram.y"
     {
                        (yyval.expr) = _hx509_make_expr(expr_VAR, (yyvsp[(1) - (3)].string), (yyvsp[(3) - (3)].expr)); }
     break;
 
   case 26:
-#line 113 "heimdal/lib/hx509/sel-gram.y"
+#line 112 "heimdal/lib/hx509/sel-gram.y"
     {
                        (yyval.expr) = _hx509_make_expr(expr_VAR, (yyvsp[(1) - (1)].string), NULL); }
     break;
 
 
 /* Line 1267 of yacc.c.  */
-#line 1501 "heimdal/lib/hx509/sel-gram.y"
+#line 1500 "heimdal/lib/hx509/sel-gram.y"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
index bb4a64d1c7947c3ba3cc8e4130ebbd5b3ea951e4..6e763ef1bf0776f56f7a096e8f057e3b22ef9964 100644 (file)
@@ -66,7 +66,7 @@
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 46 "heimdal/lib/hx509/sel-gram.y"
+#line 45 "heimdal/lib/hx509/sel-gram.y"
 {
     char *string;
     struct hx_expr *expr;
index d3b7264c2c7b3d78f06e200b3a2efb678da7b69c..c0f3b6be9903d96b5c8977a93af3e4258804b5e3 100644 (file)
@@ -689,10 +689,10 @@ asn1_compile_ASN1_OBJ_FILES = \
        $(heimdalsrcdir)/lib/asn1/gen_seq.ho \
        $(heimdalsrcdir)/lib/asn1/hash.ho \
        $(heimdalsrcdir)/lib/asn1/symbol.ho \
-       $(heimdalsrcdir)/lib/asn1/parse.ho \
+       $(heimdalsrcdir)/lib/asn1/asn1parse.ho \
        $(heimdalsrcdir)/lib/asn1/lex.ho
 
-$(heimdalsrcdir)/lib/asn1/lex.c:: $(heimdalsrcdir)/lib/asn1/parse.c
+$(heimdalsrcdir)/lib/asn1/lex.c:: $(heimdalsrcdir)/lib/asn1/asn1parse.c
 dist:: $(heimdalsrcdir)/lib/asn1/lex.c
 
 asn1_compile_OBJ_FILES = \