"Fossies" - the Fresh Open Source Software Archive

Member "nsd-4.3.6/zparser.c" (6 Apr 2021, 149961 Bytes) of package /linux/misc/dns/nsd-4.3.6.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "zparser.c" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 4.3.5_vs_4.3.6.

    1 /* A Bison parser, made by GNU Bison 3.6.4.  */
    2 
    3 /* Bison implementation for Yacc-like parsers in C
    4 
    5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
    6    Inc.
    7 
    8    This program is free software: you can redistribute it and/or modify
    9    it under the terms of the GNU General Public License as published by
   10    the Free Software Foundation, either version 3 of the License, or
   11    (at your option) any later version.
   12 
   13    This program is distributed in the hope that it will be useful,
   14    but WITHOUT ANY WARRANTY; without even the implied warranty of
   15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   16    GNU General Public License for more details.
   17 
   18    You should have received a copy of the GNU General Public License
   19    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
   20 
   21 /* As a special exception, you may create a larger work that contains
   22    part or all of the Bison parser skeleton and distribute that work
   23    under terms of your choice, so long as that work isn't itself a
   24    parser generator using the skeleton or a modified version thereof
   25    as a parser skeleton.  Alternatively, if you modify or redistribute
   26    the parser skeleton itself, you may (at your option) remove this
   27    special exception, which will cause the skeleton and the resulting
   28    Bison output files to be licensed under the GNU General Public
   29    License without this special exception.
   30 
   31    This special exception was added by the Free Software Foundation in
   32    version 2.2 of Bison.  */
   33 
   34 /* C LALR(1) parser skeleton written by Richard Stallman, by
   35    simplifying the original so-called "semantic" parser.  */
   36 
   37 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
   38    especially those whose name start with YY_ or yy_.  They are
   39    private implementation details that can be changed or removed.  */
   40 
   41 /* All symbols defined below should begin with yy or YY, to avoid
   42    infringing on user name space.  This should be done even for local
   43    variables, as they might otherwise be expanded by user macros.
   44    There are some unavoidable exceptions within include files to
   45    define necessary library symbols; they are noted "INFRINGES ON
   46    USER NAME SPACE" below.  */
   47 
   48 /* Identify Bison output.  */
   49 #define YYBISON 1
   50 
   51 /* Bison version.  */
   52 #define YYBISON_VERSION "3.6.4"
   53 
   54 /* Skeleton name.  */
   55 #define YYSKELETON_NAME "yacc.c"
   56 
   57 /* Pure parsers.  */
   58 #define YYPURE 0
   59 
   60 /* Push parsers.  */
   61 #define YYPUSH 0
   62 
   63 /* Pull parsers.  */
   64 #define YYPULL 1
   65 
   66 
   67 
   68 
   69 /* First part of user prologue.  */
   70 #line 1 "zparser.y"
   71 
   72 /*
   73  * zyparser.y -- yacc grammar for (DNS) zone files
   74  *
   75  * Copyright (c) 2001-2006, NLnet Labs. All rights reserved.
   76  *
   77  * See LICENSE for the license.
   78  *
   79  */
   80 
   81 #include "config.h"
   82 
   83 #include <stdarg.h>
   84 #include <stdio.h>
   85 #include <string.h>
   86 
   87 #include "dname.h"
   88 #include "namedb.h"
   89 #include "zonec.h"
   90 
   91 /* these need to be global, otherwise they cannot be used inside yacc */
   92 zparser_type *parser;
   93 
   94 #ifdef __cplusplus
   95 extern "C"
   96 #endif /* __cplusplus */
   97 int yywrap(void);
   98 
   99 /* this hold the nxt bits */
  100 static uint8_t nxtbits[16];
  101 static int dlv_warn = 1;
  102 
  103 /* 256 windows of 256 bits (32 bytes) */
  104 /* still need to reset the bastard somewhere */
  105 static uint8_t nsecbits[NSEC_WINDOW_COUNT][NSEC_WINDOW_BITS_SIZE];
  106 
  107 /* hold the highest rcode seen in a NSEC rdata , BUG #106 */
  108 uint16_t nsec_highest_rcode;
  109 
  110 void yyerror(const char *message);
  111 
  112 #ifdef NSEC3
  113 /* parse nsec3 parameters and add the (first) rdata elements */
  114 static void
  115 nsec3_add_params(const char* hash_algo_str, const char* flag_str,
  116     const char* iter_str, const char* salt_str, int salt_len);
  117 #endif /* NSEC3 */
  118 
  119 
  120 #line 121 "zparser.c"
  121 
  122 # ifndef YY_CAST
  123 #  ifdef __cplusplus
  124 #   define YY_CAST(Type, Val) static_cast<Type> (Val)
  125 #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
  126 #  else
  127 #   define YY_CAST(Type, Val) ((Type) (Val))
  128 #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
  129 #  endif
  130 # endif
  131 # ifndef YY_NULLPTR
  132 #  if defined __cplusplus
  133 #   if 201103L <= __cplusplus
  134 #    define YY_NULLPTR nullptr
  135 #   else
  136 #    define YY_NULLPTR 0
  137 #   endif
  138 #  else
  139 #   define YY_NULLPTR ((void*)0)
  140 #  endif
  141 # endif
  142 
  143 /* Use api.header.include to #include this header
  144    instead of duplicating it here.  */
  145 #ifndef YY_YY_ZPARSER_H_INCLUDED
  146 # define YY_YY_ZPARSER_H_INCLUDED
  147 /* Debug traces.  */
  148 #ifndef YYDEBUG
  149 # define YYDEBUG 0
  150 #endif
  151 #if YYDEBUG
  152 extern int yydebug;
  153 #endif
  154 
  155 /* Token kinds.  */
  156 #ifndef YYTOKENTYPE
  157 # define YYTOKENTYPE
  158   enum yytokentype
  159   {
  160     YYEMPTY = -2,
  161     YYEOF = 0,                     /* "end of file"  */
  162     YYerror = 256,                 /* error  */
  163     YYUNDEF = 257,                 /* "invalid token"  */
  164     T_A = 258,                     /* T_A  */
  165     T_NS = 259,                    /* T_NS  */
  166     T_MX = 260,                    /* T_MX  */
  167     T_TXT = 261,                   /* T_TXT  */
  168     T_CNAME = 262,                 /* T_CNAME  */
  169     T_AAAA = 263,                  /* T_AAAA  */
  170     T_PTR = 264,                   /* T_PTR  */
  171     T_NXT = 265,                   /* T_NXT  */
  172     T_KEY = 266,                   /* T_KEY  */
  173     T_SOA = 267,                   /* T_SOA  */
  174     T_SIG = 268,                   /* T_SIG  */
  175     T_SRV = 269,                   /* T_SRV  */
  176     T_CERT = 270,                  /* T_CERT  */
  177     T_LOC = 271,                   /* T_LOC  */
  178     T_MD = 272,                    /* T_MD  */
  179     T_MF = 273,                    /* T_MF  */
  180     T_MB = 274,                    /* T_MB  */
  181     T_MG = 275,                    /* T_MG  */
  182     T_MR = 276,                    /* T_MR  */
  183     T_NULL = 277,                  /* T_NULL  */
  184     T_WKS = 278,                   /* T_WKS  */
  185     T_HINFO = 279,                 /* T_HINFO  */
  186     T_MINFO = 280,                 /* T_MINFO  */
  187     T_RP = 281,                    /* T_RP  */
  188     T_AFSDB = 282,                 /* T_AFSDB  */
  189     T_X25 = 283,                   /* T_X25  */
  190     T_ISDN = 284,                  /* T_ISDN  */
  191     T_RT = 285,                    /* T_RT  */
  192     T_NSAP = 286,                  /* T_NSAP  */
  193     T_NSAP_PTR = 287,              /* T_NSAP_PTR  */
  194     T_PX = 288,                    /* T_PX  */
  195     T_GPOS = 289,                  /* T_GPOS  */
  196     T_EID = 290,                   /* T_EID  */
  197     T_NIMLOC = 291,                /* T_NIMLOC  */
  198     T_ATMA = 292,                  /* T_ATMA  */
  199     T_NAPTR = 293,                 /* T_NAPTR  */
  200     T_KX = 294,                    /* T_KX  */
  201     T_A6 = 295,                    /* T_A6  */
  202     T_DNAME = 296,                 /* T_DNAME  */
  203     T_SINK = 297,                  /* T_SINK  */
  204     T_OPT = 298,                   /* T_OPT  */
  205     T_APL = 299,                   /* T_APL  */
  206     T_UINFO = 300,                 /* T_UINFO  */
  207     T_UID = 301,                   /* T_UID  */
  208     T_GID = 302,                   /* T_GID  */
  209     T_UNSPEC = 303,                /* T_UNSPEC  */
  210     T_TKEY = 304,                  /* T_TKEY  */
  211     T_TSIG = 305,                  /* T_TSIG  */
  212     T_IXFR = 306,                  /* T_IXFR  */
  213     T_AXFR = 307,                  /* T_AXFR  */
  214     T_MAILB = 308,                 /* T_MAILB  */
  215     T_MAILA = 309,                 /* T_MAILA  */
  216     T_DS = 310,                    /* T_DS  */
  217     T_DLV = 311,                   /* T_DLV  */
  218     T_SSHFP = 312,                 /* T_SSHFP  */
  219     T_RRSIG = 313,                 /* T_RRSIG  */
  220     T_NSEC = 314,                  /* T_NSEC  */
  221     T_DNSKEY = 315,                /* T_DNSKEY  */
  222     T_SPF = 316,                   /* T_SPF  */
  223     T_NSEC3 = 317,                 /* T_NSEC3  */
  224     T_IPSECKEY = 318,              /* T_IPSECKEY  */
  225     T_DHCID = 319,                 /* T_DHCID  */
  226     T_NSEC3PARAM = 320,            /* T_NSEC3PARAM  */
  227     T_TLSA = 321,                  /* T_TLSA  */
  228     T_URI = 322,                   /* T_URI  */
  229     T_NID = 323,                   /* T_NID  */
  230     T_L32 = 324,                   /* T_L32  */
  231     T_L64 = 325,                   /* T_L64  */
  232     T_LP = 326,                    /* T_LP  */
  233     T_EUI48 = 327,                 /* T_EUI48  */
  234     T_EUI64 = 328,                 /* T_EUI64  */
  235     T_CAA = 329,                   /* T_CAA  */
  236     T_CDS = 330,                   /* T_CDS  */
  237     T_CDNSKEY = 331,               /* T_CDNSKEY  */
  238     T_OPENPGPKEY = 332,            /* T_OPENPGPKEY  */
  239     T_CSYNC = 333,                 /* T_CSYNC  */
  240     T_ZONEMD = 334,                /* T_ZONEMD  */
  241     T_AVC = 335,                   /* T_AVC  */
  242     T_SMIMEA = 336,                /* T_SMIMEA  */
  243     DOLLAR_TTL = 337,              /* DOLLAR_TTL  */
  244     DOLLAR_ORIGIN = 338,           /* DOLLAR_ORIGIN  */
  245     NL = 339,                      /* NL  */
  246     SP = 340,                      /* SP  */
  247     QSTR = 341,                    /* QSTR  */
  248     STR = 342,                     /* STR  */
  249     PREV = 343,                    /* PREV  */
  250     BITLAB = 344,                  /* BITLAB  */
  251     T_TTL = 345,                   /* T_TTL  */
  252     T_RRCLASS = 346,               /* T_RRCLASS  */
  253     URR = 347,                     /* URR  */
  254     T_UTYPE = 348                  /* T_UTYPE  */
  255   };
  256   typedef enum yytokentype yytoken_kind_t;
  257 #endif
  258 /* Token kinds.  */
  259 #define YYEOF 0
  260 #define YYerror 256
  261 #define YYUNDEF 257
  262 #define T_A 258
  263 #define T_NS 259
  264 #define T_MX 260
  265 #define T_TXT 261
  266 #define T_CNAME 262
  267 #define T_AAAA 263
  268 #define T_PTR 264
  269 #define T_NXT 265
  270 #define T_KEY 266
  271 #define T_SOA 267
  272 #define T_SIG 268
  273 #define T_SRV 269
  274 #define T_CERT 270
  275 #define T_LOC 271
  276 #define T_MD 272
  277 #define T_MF 273
  278 #define T_MB 274
  279 #define T_MG 275
  280 #define T_MR 276
  281 #define T_NULL 277
  282 #define T_WKS 278
  283 #define T_HINFO 279
  284 #define T_MINFO 280
  285 #define T_RP 281
  286 #define T_AFSDB 282
  287 #define T_X25 283
  288 #define T_ISDN 284
  289 #define T_RT 285
  290 #define T_NSAP 286
  291 #define T_NSAP_PTR 287
  292 #define T_PX 288
  293 #define T_GPOS 289
  294 #define T_EID 290
  295 #define T_NIMLOC 291
  296 #define T_ATMA 292
  297 #define T_NAPTR 293
  298 #define T_KX 294
  299 #define T_A6 295
  300 #define T_DNAME 296
  301 #define T_SINK 297
  302 #define T_OPT 298
  303 #define T_APL 299
  304 #define T_UINFO 300
  305 #define T_UID 301
  306 #define T_GID 302
  307 #define T_UNSPEC 303
  308 #define T_TKEY 304
  309 #define T_TSIG 305
  310 #define T_IXFR 306
  311 #define T_AXFR 307
  312 #define T_MAILB 308
  313 #define T_MAILA 309
  314 #define T_DS 310
  315 #define T_DLV 311
  316 #define T_SSHFP 312
  317 #define T_RRSIG 313
  318 #define T_NSEC 314
  319 #define T_DNSKEY 315
  320 #define T_SPF 316
  321 #define T_NSEC3 317
  322 #define T_IPSECKEY 318
  323 #define T_DHCID 319
  324 #define T_NSEC3PARAM 320
  325 #define T_TLSA 321
  326 #define T_URI 322
  327 #define T_NID 323
  328 #define T_L32 324
  329 #define T_L64 325
  330 #define T_LP 326
  331 #define T_EUI48 327
  332 #define T_EUI64 328
  333 #define T_CAA 329
  334 #define T_CDS 330
  335 #define T_CDNSKEY 331
  336 #define T_OPENPGPKEY 332
  337 #define T_CSYNC 333
  338 #define T_ZONEMD 334
  339 #define T_AVC 335
  340 #define T_SMIMEA 336
  341 #define DOLLAR_TTL 337
  342 #define DOLLAR_ORIGIN 338
  343 #define NL 339
  344 #define SP 340
  345 #define QSTR 341
  346 #define STR 342
  347 #define PREV 343
  348 #define BITLAB 344
  349 #define T_TTL 345
  350 #define T_RRCLASS 346
  351 #define URR 347
  352 #define T_UTYPE 348
  353 
  354 /* Value type.  */
  355 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
  356 union YYSTYPE
  357 {
  358 #line 50 "zparser.y"
  359 
  360     domain_type  *domain;
  361     const dname_type *dname;
  362     struct lex_data   data;
  363     uint32_t      ttl;
  364     uint16_t      klass;
  365     uint16_t      type;
  366     uint16_t     *unknown;
  367 
  368 #line 369 "zparser.c"
  369 
  370 };
  371 typedef union YYSTYPE YYSTYPE;
  372 # define YYSTYPE_IS_TRIVIAL 1
  373 # define YYSTYPE_IS_DECLARED 1
  374 #endif
  375 
  376 
  377 extern YYSTYPE yylval;
  378 
  379 int yyparse (void);
  380 
  381 #endif /* !YY_YY_ZPARSER_H_INCLUDED  */
  382 /* Symbol kind.  */
  383 enum yysymbol_kind_t
  384 {
  385   YYSYMBOL_YYEMPTY = -2,
  386   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
  387   YYSYMBOL_YYerror = 1,                    /* error  */
  388   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
  389   YYSYMBOL_T_A = 3,                        /* T_A  */
  390   YYSYMBOL_T_NS = 4,                       /* T_NS  */
  391   YYSYMBOL_T_MX = 5,                       /* T_MX  */
  392   YYSYMBOL_T_TXT = 6,                      /* T_TXT  */
  393   YYSYMBOL_T_CNAME = 7,                    /* T_CNAME  */
  394   YYSYMBOL_T_AAAA = 8,                     /* T_AAAA  */
  395   YYSYMBOL_T_PTR = 9,                      /* T_PTR  */
  396   YYSYMBOL_T_NXT = 10,                     /* T_NXT  */
  397   YYSYMBOL_T_KEY = 11,                     /* T_KEY  */
  398   YYSYMBOL_T_SOA = 12,                     /* T_SOA  */
  399   YYSYMBOL_T_SIG = 13,                     /* T_SIG  */
  400   YYSYMBOL_T_SRV = 14,                     /* T_SRV  */
  401   YYSYMBOL_T_CERT = 15,                    /* T_CERT  */
  402   YYSYMBOL_T_LOC = 16,                     /* T_LOC  */
  403   YYSYMBOL_T_MD = 17,                      /* T_MD  */
  404   YYSYMBOL_T_MF = 18,                      /* T_MF  */
  405   YYSYMBOL_T_MB = 19,                      /* T_MB  */
  406   YYSYMBOL_T_MG = 20,                      /* T_MG  */
  407   YYSYMBOL_T_MR = 21,                      /* T_MR  */
  408   YYSYMBOL_T_NULL = 22,                    /* T_NULL  */
  409   YYSYMBOL_T_WKS = 23,                     /* T_WKS  */
  410   YYSYMBOL_T_HINFO = 24,                   /* T_HINFO  */
  411   YYSYMBOL_T_MINFO = 25,                   /* T_MINFO  */
  412   YYSYMBOL_T_RP = 26,                      /* T_RP  */
  413   YYSYMBOL_T_AFSDB = 27,                   /* T_AFSDB  */
  414   YYSYMBOL_T_X25 = 28,                     /* T_X25  */
  415   YYSYMBOL_T_ISDN = 29,                    /* T_ISDN  */
  416   YYSYMBOL_T_RT = 30,                      /* T_RT  */
  417   YYSYMBOL_T_NSAP = 31,                    /* T_NSAP  */
  418   YYSYMBOL_T_NSAP_PTR = 32,                /* T_NSAP_PTR  */
  419   YYSYMBOL_T_PX = 33,                      /* T_PX  */
  420   YYSYMBOL_T_GPOS = 34,                    /* T_GPOS  */
  421   YYSYMBOL_T_EID = 35,                     /* T_EID  */
  422   YYSYMBOL_T_NIMLOC = 36,                  /* T_NIMLOC  */
  423   YYSYMBOL_T_ATMA = 37,                    /* T_ATMA  */
  424   YYSYMBOL_T_NAPTR = 38,                   /* T_NAPTR  */
  425   YYSYMBOL_T_KX = 39,                      /* T_KX  */
  426   YYSYMBOL_T_A6 = 40,                      /* T_A6  */
  427   YYSYMBOL_T_DNAME = 41,                   /* T_DNAME  */
  428   YYSYMBOL_T_SINK = 42,                    /* T_SINK  */
  429   YYSYMBOL_T_OPT = 43,                     /* T_OPT  */
  430   YYSYMBOL_T_APL = 44,                     /* T_APL  */
  431   YYSYMBOL_T_UINFO = 45,                   /* T_UINFO  */
  432   YYSYMBOL_T_UID = 46,                     /* T_UID  */
  433   YYSYMBOL_T_GID = 47,                     /* T_GID  */
  434   YYSYMBOL_T_UNSPEC = 48,                  /* T_UNSPEC  */
  435   YYSYMBOL_T_TKEY = 49,                    /* T_TKEY  */
  436   YYSYMBOL_T_TSIG = 50,                    /* T_TSIG  */
  437   YYSYMBOL_T_IXFR = 51,                    /* T_IXFR  */
  438   YYSYMBOL_T_AXFR = 52,                    /* T_AXFR  */
  439   YYSYMBOL_T_MAILB = 53,                   /* T_MAILB  */
  440   YYSYMBOL_T_MAILA = 54,                   /* T_MAILA  */
  441   YYSYMBOL_T_DS = 55,                      /* T_DS  */
  442   YYSYMBOL_T_DLV = 56,                     /* T_DLV  */
  443   YYSYMBOL_T_SSHFP = 57,                   /* T_SSHFP  */
  444   YYSYMBOL_T_RRSIG = 58,                   /* T_RRSIG  */
  445   YYSYMBOL_T_NSEC = 59,                    /* T_NSEC  */
  446   YYSYMBOL_T_DNSKEY = 60,                  /* T_DNSKEY  */
  447   YYSYMBOL_T_SPF = 61,                     /* T_SPF  */
  448   YYSYMBOL_T_NSEC3 = 62,                   /* T_NSEC3  */
  449   YYSYMBOL_T_IPSECKEY = 63,                /* T_IPSECKEY  */
  450   YYSYMBOL_T_DHCID = 64,                   /* T_DHCID  */
  451   YYSYMBOL_T_NSEC3PARAM = 65,              /* T_NSEC3PARAM  */
  452   YYSYMBOL_T_TLSA = 66,                    /* T_TLSA  */
  453   YYSYMBOL_T_URI = 67,                     /* T_URI  */
  454   YYSYMBOL_T_NID = 68,                     /* T_NID  */
  455   YYSYMBOL_T_L32 = 69,                     /* T_L32  */
  456   YYSYMBOL_T_L64 = 70,                     /* T_L64  */
  457   YYSYMBOL_T_LP = 71,                      /* T_LP  */
  458   YYSYMBOL_T_EUI48 = 72,                   /* T_EUI48  */
  459   YYSYMBOL_T_EUI64 = 73,                   /* T_EUI64  */
  460   YYSYMBOL_T_CAA = 74,                     /* T_CAA  */
  461   YYSYMBOL_T_CDS = 75,                     /* T_CDS  */
  462   YYSYMBOL_T_CDNSKEY = 76,                 /* T_CDNSKEY  */
  463   YYSYMBOL_T_OPENPGPKEY = 77,              /* T_OPENPGPKEY  */
  464   YYSYMBOL_T_CSYNC = 78,                   /* T_CSYNC  */
  465   YYSYMBOL_T_ZONEMD = 79,                  /* T_ZONEMD  */
  466   YYSYMBOL_T_AVC = 80,                     /* T_AVC  */
  467   YYSYMBOL_T_SMIMEA = 81,                  /* T_SMIMEA  */
  468   YYSYMBOL_DOLLAR_TTL = 82,                /* DOLLAR_TTL  */
  469   YYSYMBOL_DOLLAR_ORIGIN = 83,             /* DOLLAR_ORIGIN  */
  470   YYSYMBOL_NL = 84,                        /* NL  */
  471   YYSYMBOL_SP = 85,                        /* SP  */
  472   YYSYMBOL_QSTR = 86,                      /* QSTR  */
  473   YYSYMBOL_STR = 87,                       /* STR  */
  474   YYSYMBOL_PREV = 88,                      /* PREV  */
  475   YYSYMBOL_BITLAB = 89,                    /* BITLAB  */
  476   YYSYMBOL_T_TTL = 90,                     /* T_TTL  */
  477   YYSYMBOL_T_RRCLASS = 91,                 /* T_RRCLASS  */
  478   YYSYMBOL_URR = 92,                       /* URR  */
  479   YYSYMBOL_T_UTYPE = 93,                   /* T_UTYPE  */
  480   YYSYMBOL_94_ = 94,                       /* '.'  */
  481   YYSYMBOL_95_ = 95,                       /* '@'  */
  482   YYSYMBOL_YYACCEPT = 96,                  /* $accept  */
  483   YYSYMBOL_lines = 97,                     /* lines  */
  484   YYSYMBOL_line = 98,                      /* line  */
  485   YYSYMBOL_sp = 99,                        /* sp  */
  486   YYSYMBOL_str = 100,                      /* str  */
  487   YYSYMBOL_trail = 101,                    /* trail  */
  488   YYSYMBOL_ttl_directive = 102,            /* ttl_directive  */
  489   YYSYMBOL_origin_directive = 103,         /* origin_directive  */
  490   YYSYMBOL_rr = 104,                       /* rr  */
  491   YYSYMBOL_owner = 105,                    /* owner  */
  492   YYSYMBOL_classttl = 106,                 /* classttl  */
  493   YYSYMBOL_dname = 107,                    /* dname  */
  494   YYSYMBOL_abs_dname = 108,                /* abs_dname  */
  495   YYSYMBOL_label = 109,                    /* label  */
  496   YYSYMBOL_rel_dname = 110,                /* rel_dname  */
  497   YYSYMBOL_wire_dname = 111,               /* wire_dname  */
  498   YYSYMBOL_wire_abs_dname = 112,           /* wire_abs_dname  */
  499   YYSYMBOL_wire_label = 113,               /* wire_label  */
  500   YYSYMBOL_wire_rel_dname = 114,           /* wire_rel_dname  */
  501   YYSYMBOL_str_seq = 115,                  /* str_seq  */
  502   YYSYMBOL_concatenated_str_seq = 116,     /* concatenated_str_seq  */
  503   YYSYMBOL_nxt_seq = 117,                  /* nxt_seq  */
  504   YYSYMBOL_nsec_more = 118,                /* nsec_more  */
  505   YYSYMBOL_nsec_seq = 119,                 /* nsec_seq  */
  506   YYSYMBOL_str_sp_seq = 120,               /* str_sp_seq  */
  507   YYSYMBOL_str_dot_seq = 121,              /* str_dot_seq  */
  508   YYSYMBOL_unquoted_dotted_str = 122,      /* unquoted_dotted_str  */
  509   YYSYMBOL_dotted_str = 123,               /* dotted_str  */
  510   YYSYMBOL_type_and_rdata = 124,           /* type_and_rdata  */
  511   YYSYMBOL_rdata_a = 125,                  /* rdata_a  */
  512   YYSYMBOL_rdata_domain_name = 126,        /* rdata_domain_name  */
  513   YYSYMBOL_rdata_soa = 127,                /* rdata_soa  */
  514   YYSYMBOL_rdata_wks = 128,                /* rdata_wks  */
  515   YYSYMBOL_rdata_hinfo = 129,              /* rdata_hinfo  */
  516   YYSYMBOL_rdata_minfo = 130,              /* rdata_minfo  */
  517   YYSYMBOL_rdata_mx = 131,                 /* rdata_mx  */
  518   YYSYMBOL_rdata_txt = 132,                /* rdata_txt  */
  519   YYSYMBOL_rdata_rp = 133,                 /* rdata_rp  */
  520   YYSYMBOL_rdata_afsdb = 134,              /* rdata_afsdb  */
  521   YYSYMBOL_rdata_x25 = 135,                /* rdata_x25  */
  522   YYSYMBOL_rdata_isdn = 136,               /* rdata_isdn  */
  523   YYSYMBOL_rdata_rt = 137,                 /* rdata_rt  */
  524   YYSYMBOL_rdata_nsap = 138,               /* rdata_nsap  */
  525   YYSYMBOL_rdata_px = 139,                 /* rdata_px  */
  526   YYSYMBOL_rdata_aaaa = 140,               /* rdata_aaaa  */
  527   YYSYMBOL_rdata_loc = 141,                /* rdata_loc  */
  528   YYSYMBOL_rdata_nxt = 142,                /* rdata_nxt  */
  529   YYSYMBOL_rdata_srv = 143,                /* rdata_srv  */
  530   YYSYMBOL_rdata_naptr = 144,              /* rdata_naptr  */
  531   YYSYMBOL_rdata_kx = 145,                 /* rdata_kx  */
  532   YYSYMBOL_rdata_cert = 146,               /* rdata_cert  */
  533   YYSYMBOL_rdata_apl = 147,                /* rdata_apl  */
  534   YYSYMBOL_rdata_apl_seq = 148,            /* rdata_apl_seq  */
  535   YYSYMBOL_rdata_ds = 149,                 /* rdata_ds  */
  536   YYSYMBOL_rdata_dlv = 150,                /* rdata_dlv  */
  537   YYSYMBOL_rdata_sshfp = 151,              /* rdata_sshfp  */
  538   YYSYMBOL_rdata_dhcid = 152,              /* rdata_dhcid  */
  539   YYSYMBOL_rdata_rrsig = 153,              /* rdata_rrsig  */
  540   YYSYMBOL_rdata_nsec = 154,               /* rdata_nsec  */
  541   YYSYMBOL_rdata_nsec3 = 155,              /* rdata_nsec3  */
  542   YYSYMBOL_rdata_nsec3_param = 156,        /* rdata_nsec3_param  */
  543   YYSYMBOL_rdata_tlsa = 157,               /* rdata_tlsa  */
  544   YYSYMBOL_rdata_smimea = 158,             /* rdata_smimea  */
  545   YYSYMBOL_rdata_dnskey = 159,             /* rdata_dnskey  */
  546   YYSYMBOL_rdata_ipsec_base = 160,         /* rdata_ipsec_base  */
  547   YYSYMBOL_rdata_ipseckey = 161,           /* rdata_ipseckey  */
  548   YYSYMBOL_rdata_nid = 162,                /* rdata_nid  */
  549   YYSYMBOL_rdata_l32 = 163,                /* rdata_l32  */
  550   YYSYMBOL_rdata_l64 = 164,                /* rdata_l64  */
  551   YYSYMBOL_rdata_lp = 165,                 /* rdata_lp  */
  552   YYSYMBOL_rdata_eui48 = 166,              /* rdata_eui48  */
  553   YYSYMBOL_rdata_eui64 = 167,              /* rdata_eui64  */
  554   YYSYMBOL_rdata_uri = 168,                /* rdata_uri  */
  555   YYSYMBOL_rdata_caa = 169,                /* rdata_caa  */
  556   YYSYMBOL_rdata_openpgpkey = 170,         /* rdata_openpgpkey  */
  557   YYSYMBOL_rdata_csync = 171,              /* rdata_csync  */
  558   YYSYMBOL_rdata_zonemd = 172,             /* rdata_zonemd  */
  559   YYSYMBOL_rdata_unknown = 173             /* rdata_unknown  */
  560 };
  561 typedef enum yysymbol_kind_t yysymbol_kind_t;
  562 
  563 
  564 
  565 
  566 #ifdef short
  567 # undef short
  568 #endif
  569 
  570 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
  571    <limits.h> and (if available) <stdint.h> are included
  572    so that the code can choose integer types of a good width.  */
  573 
  574 #ifndef __PTRDIFF_MAX__
  575 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
  576 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
  577 #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
  578 #  define YY_STDINT_H
  579 # endif
  580 #endif
  581 
  582 /* Narrow types that promote to a signed type and that can represent a
  583    signed or unsigned integer of at least N bits.  In tables they can
  584    save space and decrease cache pressure.  Promoting to a signed type
  585    helps avoid bugs in integer arithmetic.  */
  586 
  587 #ifdef __INT_LEAST8_MAX__
  588 typedef __INT_LEAST8_TYPE__ yytype_int8;
  589 #elif defined YY_STDINT_H
  590 typedef int_least8_t yytype_int8;
  591 #else
  592 typedef signed char yytype_int8;
  593 #endif
  594 
  595 #ifdef __INT_LEAST16_MAX__
  596 typedef __INT_LEAST16_TYPE__ yytype_int16;
  597 #elif defined YY_STDINT_H
  598 typedef int_least16_t yytype_int16;
  599 #else
  600 typedef short yytype_int16;
  601 #endif
  602 
  603 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
  604 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
  605 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
  606        && UINT_LEAST8_MAX <= INT_MAX)
  607 typedef uint_least8_t yytype_uint8;
  608 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
  609 typedef unsigned char yytype_uint8;
  610 #else
  611 typedef short yytype_uint8;
  612 #endif
  613 
  614 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
  615 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
  616 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
  617        && UINT_LEAST16_MAX <= INT_MAX)
  618 typedef uint_least16_t yytype_uint16;
  619 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
  620 typedef unsigned short yytype_uint16;
  621 #else
  622 typedef int yytype_uint16;
  623 #endif
  624 
  625 #ifndef YYPTRDIFF_T
  626 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
  627 #  define YYPTRDIFF_T __PTRDIFF_TYPE__
  628 #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
  629 # elif defined PTRDIFF_MAX
  630 #  ifndef ptrdiff_t
  631 #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
  632 #  endif
  633 #  define YYPTRDIFF_T ptrdiff_t
  634 #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
  635 # else
  636 #  define YYPTRDIFF_T long
  637 #  define YYPTRDIFF_MAXIMUM LONG_MAX
  638 # endif
  639 #endif
  640 
  641 #ifndef YYSIZE_T
  642 # ifdef __SIZE_TYPE__
  643 #  define YYSIZE_T __SIZE_TYPE__
  644 # elif defined size_t
  645 #  define YYSIZE_T size_t
  646 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
  647 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
  648 #  define YYSIZE_T size_t
  649 # else
  650 #  define YYSIZE_T unsigned
  651 # endif
  652 #endif
  653 
  654 #define YYSIZE_MAXIMUM                                  \
  655   YY_CAST (YYPTRDIFF_T,                                 \
  656            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
  657             ? YYPTRDIFF_MAXIMUM                         \
  658             : YY_CAST (YYSIZE_T, -1)))
  659 
  660 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  661 
  662 
  663 /* Stored state numbers (used for stacks). */
  664 typedef yytype_int16 yy_state_t;
  665 
  666 /* State numbers in computations.  */
  667 typedef int yy_state_fast_t;
  668 
  669 #ifndef YY_
  670 # if defined YYENABLE_NLS && YYENABLE_NLS
  671 #  if ENABLE_NLS
  672 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
  673 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
  674 #  endif
  675 # endif
  676 # ifndef YY_
  677 #  define YY_(Msgid) Msgid
  678 # endif
  679 #endif
  680 
  681 
  682 #ifndef YY_ATTRIBUTE_PURE
  683 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
  684 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
  685 # else
  686 #  define YY_ATTRIBUTE_PURE
  687 # endif
  688 #endif
  689 
  690 #ifndef YY_ATTRIBUTE_UNUSED
  691 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
  692 #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
  693 # else
  694 #  define YY_ATTRIBUTE_UNUSED
  695 # endif
  696 #endif
  697 
  698 /* Suppress unused-variable warnings by "using" E.  */
  699 #if ! defined lint || defined __GNUC__
  700 # define YYUSE(E) ((void) (E))
  701 #else
  702 # define YYUSE(E) /* empty */
  703 #endif
  704 
  705 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
  706 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
  707 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
  708     _Pragma ("GCC diagnostic push")                                     \
  709     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
  710     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
  711 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
  712     _Pragma ("GCC diagnostic pop")
  713 #else
  714 # define YY_INITIAL_VALUE(Value) Value
  715 #endif
  716 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  717 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  718 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
  719 #endif
  720 #ifndef YY_INITIAL_VALUE
  721 # define YY_INITIAL_VALUE(Value) /* Nothing. */
  722 #endif
  723 
  724 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
  725 # define YY_IGNORE_USELESS_CAST_BEGIN                          \
  726     _Pragma ("GCC diagnostic push")                            \
  727     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
  728 # define YY_IGNORE_USELESS_CAST_END            \
  729     _Pragma ("GCC diagnostic pop")
  730 #endif
  731 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
  732 # define YY_IGNORE_USELESS_CAST_BEGIN
  733 # define YY_IGNORE_USELESS_CAST_END
  734 #endif
  735 
  736 
  737 #define YY_ASSERT(E) ((void) (0 && (E)))
  738 
  739 #if !defined yyoverflow
  740 
  741 /* The parser invokes alloca or malloc; define the necessary symbols.  */
  742 
  743 # ifdef YYSTACK_USE_ALLOCA
  744 #  if YYSTACK_USE_ALLOCA
  745 #   ifdef __GNUC__
  746 #    define YYSTACK_ALLOC __builtin_alloca
  747 #   elif defined __BUILTIN_VA_ARG_INCR
  748 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
  749 #   elif defined _AIX
  750 #    define YYSTACK_ALLOC __alloca
  751 #   elif defined _MSC_VER
  752 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
  753 #    define alloca _alloca
  754 #   else
  755 #    define YYSTACK_ALLOC alloca
  756 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
  757 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
  758       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
  759 #     ifndef EXIT_SUCCESS
  760 #      define EXIT_SUCCESS 0
  761 #     endif
  762 #    endif
  763 #   endif
  764 #  endif
  765 # endif
  766 
  767 # ifdef YYSTACK_ALLOC
  768    /* Pacify GCC's 'empty if-body' warning.  */
  769 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
  770 #  ifndef YYSTACK_ALLOC_MAXIMUM
  771     /* The OS might guarantee only one guard page at the bottom of the stack,
  772        and a page size can be as small as 4096 bytes.  So we cannot safely
  773        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
  774        to allow for a few compiler-allocated temporary stack slots.  */
  775 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
  776 #  endif
  777 # else
  778 #  define YYSTACK_ALLOC YYMALLOC
  779 #  define YYSTACK_FREE YYFREE
  780 #  ifndef YYSTACK_ALLOC_MAXIMUM
  781 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
  782 #  endif
  783 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
  784        && ! ((defined YYMALLOC || defined malloc) \
  785              && (defined YYFREE || defined free)))
  786 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
  787 #   ifndef EXIT_SUCCESS
  788 #    define EXIT_SUCCESS 0
  789 #   endif
  790 #  endif
  791 #  ifndef YYMALLOC
  792 #   define YYMALLOC malloc
  793 #   if ! defined malloc && ! defined EXIT_SUCCESS
  794 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
  795 #   endif
  796 #  endif
  797 #  ifndef YYFREE
  798 #   define YYFREE free
  799 #   if ! defined free && ! defined EXIT_SUCCESS
  800 void free (void *); /* INFRINGES ON USER NAME SPACE */
  801 #   endif
  802 #  endif
  803 # endif
  804 #endif /* !defined yyoverflow */
  805 
  806 #if (! defined yyoverflow \
  807      && (! defined __cplusplus \
  808          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
  809 
  810 /* A type that is properly aligned for any stack member.  */
  811 union yyalloc
  812 {
  813   yy_state_t yyss_alloc;
  814   YYSTYPE yyvs_alloc;
  815 };
  816 
  817 /* The size of the maximum gap between one aligned stack and the next.  */
  818 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
  819 
  820 /* The size of an array large to enough to hold all stacks, each with
  821    N elements.  */
  822 # define YYSTACK_BYTES(N) \
  823      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
  824       + YYSTACK_GAP_MAXIMUM)
  825 
  826 # define YYCOPY_NEEDED 1
  827 
  828 /* Relocate STACK from its old location to the new one.  The
  829    local variables YYSIZE and YYSTACKSIZE give the old and new number of
  830    elements in the stack, and YYPTR gives the new location of the
  831    stack.  Advance YYPTR to a properly aligned location for the next
  832    stack.  */
  833 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
  834     do                                                                  \
  835       {                                                                 \
  836         YYPTRDIFF_T yynewbytes;                                         \
  837         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
  838         Stack = &yyptr->Stack_alloc;                                    \
  839         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  840         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
  841       }                                                                 \
  842     while (0)
  843 
  844 #endif
  845 
  846 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
  847 /* Copy COUNT objects from SRC to DST.  The source and destination do
  848    not overlap.  */
  849 # ifndef YYCOPY
  850 #  if defined __GNUC__ && 1 < __GNUC__
  851 #   define YYCOPY(Dst, Src, Count) \
  852       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
  853 #  else
  854 #   define YYCOPY(Dst, Src, Count)              \
  855       do                                        \
  856         {                                       \
  857           YYPTRDIFF_T yyi;                      \
  858           for (yyi = 0; yyi < (Count); yyi++)   \
  859             (Dst)[yyi] = (Src)[yyi];            \
  860         }                                       \
  861       while (0)
  862 #  endif
  863 # endif
  864 #endif /* !YYCOPY_NEEDED */
  865 
  866 /* YYFINAL -- State number of the termination state.  */
  867 #define YYFINAL  2
  868 /* YYLAST -- Last index in YYTABLE.  */
  869 #define YYLAST   1358
  870 
  871 /* YYNTOKENS -- Number of terminals.  */
  872 #define YYNTOKENS  96
  873 /* YYNNTS -- Number of nonterminals.  */
  874 #define YYNNTS  78
  875 /* YYNRULES -- Number of rules.  */
  876 #define YYNRULES  250
  877 /* YYNSTATES -- Number of states.  */
  878 #define YYNSTATES  609
  879 
  880 #define YYMAXUTOK   348
  881 
  882 
  883 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
  884    as returned by yylex, with out-of-bounds checking.  */
  885 #define YYTRANSLATE(YYX)                                \
  886   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
  887    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
  888    : YYSYMBOL_YYUNDEF)
  889 
  890 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
  891    as returned by yylex.  */
  892 static const yytype_int8 yytranslate[] =
  893 {
  894        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  895        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  896        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  897        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  898        2,     2,     2,     2,     2,     2,    94,     2,     2,     2,
  899        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  900        2,     2,     2,     2,    95,     2,     2,     2,     2,     2,
  901        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  902        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  903        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  904        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  905        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  906        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  907        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  908        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  909        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  910        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  911        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  912        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  913        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  914        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  915        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  916        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  917        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  918        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  919        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
  920        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
  921       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
  922       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
  923       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
  924       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
  925       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
  926       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
  927       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
  928       85,    86,    87,    88,    89,    90,    91,    92,    93
  929 };
  930 
  931 #if YYDEBUG
  932   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
  933 static const yytype_int16 yyrline[] =
  934 {
  935        0,    93,    93,    94,    97,    98,    99,   100,   108,   116,
  936      136,   140,   141,   144,   144,   146,   147,   150,   160,   171,
  937      177,   184,   189,   196,   200,   205,   210,   215,   222,   223,
  938      244,   248,   252,   262,   276,   283,   284,   302,   303,   327,
  939      334,   346,   358,   375,   376,   388,   392,   396,   401,   405,
  940      410,   414,   418,   429,   430,   435,   444,   456,   465,   476,
  941      479,   482,   496,   497,   504,   505,   521,   522,   537,   538,
  942      543,   553,   569,   569,   576,   577,   578,   579,   580,   581,
  943      586,   587,   593,   594,   595,   596,   597,   598,   604,   605,
  944      606,   607,   609,   610,   611,   612,   613,   614,   615,   616,
  945      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
  946      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
  947      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
  948      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
  949      657,   658,   659,   660,   661,   662,   663,   664,   665,   666,
  950      667,   668,   669,   670,   671,   672,   673,   674,   675,   676,
  951      677,   678,   679,   680,   681,   682,   683,   684,   685,   686,
  952      687,   688,   689,   690,   691,   692,   693,   694,   695,   696,
  953      697,   698,   699,   700,   701,   702,   703,   704,   705,   706,
  954      707,   708,   709,   710,   711,   712,   713,   725,   731,   738,
  955      751,   758,   765,   773,   780,   787,   795,   803,   810,   814,
  956      822,   830,   842,   850,   856,   862,   870,   880,   892,   900,
  957      910,   913,   917,   923,   932,   941,   950,   956,   971,   981,
  958      996,  1006,  1015,  1024,  1033,  1078,  1082,  1086,  1093,  1100,
  959     1107,  1114,  1120,  1127,  1136,  1145,  1152,  1163,  1172,  1178,
  960     1182
  961 };
  962 #endif
  963 
  964 /** Accessing symbol of state STATE.  */
  965 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
  966 
  967 #if YYDEBUG || 0
  968 /* The user-facing name of the symbol whose (internal) number is
  969    YYSYMBOL.  No bounds checking.  */
  970 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
  971 
  972 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
  973    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
  974 static const char *const yytname[] =
  975 {
  976   "\"end of file\"", "error", "\"invalid token\"", "T_A", "T_NS", "T_MX",
  977   "T_TXT", "T_CNAME", "T_AAAA", "T_PTR", "T_NXT", "T_KEY", "T_SOA",
  978   "T_SIG", "T_SRV", "T_CERT", "T_LOC", "T_MD", "T_MF", "T_MB", "T_MG",
  979   "T_MR", "T_NULL", "T_WKS", "T_HINFO", "T_MINFO", "T_RP", "T_AFSDB",
  980   "T_X25", "T_ISDN", "T_RT", "T_NSAP", "T_NSAP_PTR", "T_PX", "T_GPOS",
  981   "T_EID", "T_NIMLOC", "T_ATMA", "T_NAPTR", "T_KX", "T_A6", "T_DNAME",
  982   "T_SINK", "T_OPT", "T_APL", "T_UINFO", "T_UID", "T_GID", "T_UNSPEC",
  983   "T_TKEY", "T_TSIG", "T_IXFR", "T_AXFR", "T_MAILB", "T_MAILA", "T_DS",
  984   "T_DLV", "T_SSHFP", "T_RRSIG", "T_NSEC", "T_DNSKEY", "T_SPF", "T_NSEC3",
  985   "T_IPSECKEY", "T_DHCID", "T_NSEC3PARAM", "T_TLSA", "T_URI", "T_NID",
  986   "T_L32", "T_L64", "T_LP", "T_EUI48", "T_EUI64", "T_CAA", "T_CDS",
  987   "T_CDNSKEY", "T_OPENPGPKEY", "T_CSYNC", "T_ZONEMD", "T_AVC", "T_SMIMEA",
  988   "DOLLAR_TTL", "DOLLAR_ORIGIN", "NL", "SP", "QSTR", "STR", "PREV",
  989   "BITLAB", "T_TTL", "T_RRCLASS", "URR", "T_UTYPE", "'.'", "'@'",
  990   "$accept", "lines", "line", "sp", "str", "trail", "ttl_directive",
  991   "origin_directive", "rr", "owner", "classttl", "dname", "abs_dname",
  992   "label", "rel_dname", "wire_dname", "wire_abs_dname", "wire_label",
  993   "wire_rel_dname", "str_seq", "concatenated_str_seq", "nxt_seq",
  994   "nsec_more", "nsec_seq", "str_sp_seq", "str_dot_seq",
  995   "unquoted_dotted_str", "dotted_str", "type_and_rdata", "rdata_a",
  996   "rdata_domain_name", "rdata_soa", "rdata_wks", "rdata_hinfo",
  997   "rdata_minfo", "rdata_mx", "rdata_txt", "rdata_rp", "rdata_afsdb",
  998   "rdata_x25", "rdata_isdn", "rdata_rt", "rdata_nsap", "rdata_px",
  999   "rdata_aaaa", "rdata_loc", "rdata_nxt", "rdata_srv", "rdata_naptr",
 1000   "rdata_kx", "rdata_cert", "rdata_apl", "rdata_apl_seq", "rdata_ds",
 1001   "rdata_dlv", "rdata_sshfp", "rdata_dhcid", "rdata_rrsig", "rdata_nsec",
 1002   "rdata_nsec3", "rdata_nsec3_param", "rdata_tlsa", "rdata_smimea",
 1003   "rdata_dnskey", "rdata_ipsec_base", "rdata_ipseckey", "rdata_nid",
 1004   "rdata_l32", "rdata_l64", "rdata_lp", "rdata_eui48", "rdata_eui64",
 1005   "rdata_uri", "rdata_caa", "rdata_openpgpkey", "rdata_csync",
 1006   "rdata_zonemd", "rdata_unknown", YY_NULLPTR
 1007 };
 1008 
 1009 static const char *
 1010 yysymbol_name (yysymbol_kind_t yysymbol)
 1011 {
 1012   return yytname[yysymbol];
 1013 }
 1014 #endif
 1015 
 1016 #ifdef YYPRINT
 1017 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
 1018    (internal) symbol number NUM (which must be that of a token).  */
 1019 static const yytype_int16 yytoknum[] =
 1020 {
 1021        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 1022      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
 1023      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
 1024      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
 1025      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
 1026      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
 1027      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
 1028      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
 1029      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
 1030      345,   346,   347,   348,    46,    64
 1031 };
 1032 #endif
 1033 
 1034 #define YYPACT_NINF (-460)
 1035 
 1036 #define yypact_value_is_default(Yyn) \
 1037   ((Yyn) == YYPACT_NINF)
 1038 
 1039 #define YYTABLE_NINF (-1)
 1040 
 1041 #define yytable_value_is_error(Yyn) \
 1042   0
 1043 
 1044   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
 1045      STATE-NUM.  */
 1046 static const yytype_int16 yypact[] =
 1047 {
 1048     -460,   113,  -460,   -75,   -78,   -78,  -460,  -460,  -460,  -460,
 1049      -61,  -460,  -460,  -460,  -460,    27,  -460,  -460,  -460,  -460,
 1050      103,   -78,  -460,  -460,   -59,  -460,    43,    56,  -460,  -460,
 1051     -460,   -78,   -78,   663,    16,   124,   120,   120,    32,   -80,
 1052      -52,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,
 1053      -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,
 1054      -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,
 1055      -78,   -78,   -78,   120,   -78,   -78,   -78,   -78,   -78,   -78,
 1056      -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,
 1057      -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,   -78,
 1058      -78,   -78,   117,  -460,  -460,  -460,   132,  -460,  -460,  -460,
 1059      -78,   -78,    97,   -73,   186,   134,   -73,    97,   -73,   -73,
 1060      186,   -73,   186,   186,   186,   146,   -73,   -73,   -73,   -73,
 1061      -73,    97,   186,   -73,   -73,   186,   186,   186,   186,   186,
 1062      186,   186,   186,   -73,    70,  -460,   186,   186,   186,   186,
 1063      -58,   186,   134,   186,   186,   186,   186,   186,   186,   186,
 1064      186,   186,   186,   186,   186,   186,   186,   186,   186,   186,
 1065      186,   134,   186,   -77,    20,  -460,    16,    16,  -460,  -460,
 1066       17,  -460,    26,   120,  -460,  -460,   120,  -460,  -460,   -78,
 1067     -460,  -460,   -55,   190,    26,  -460,  -460,  -460,  -460,   120,
 1068     -460,  -460,  -460,  -460,   -78,  -460,  -460,   -78,  -460,  -460,
 1069      -78,  -460,  -460,   -78,  -460,  -460,   -78,  -460,  -460,   -78,
 1070     -460,  -460,  -460,  -460,    38,  -460,  -460,  -460,  -460,  -460,
 1071     -460,  -460,  -460,  -460,  -460,  -460,  -460,   -78,  -460,  -460,
 1072      -78,  -460,  -460,   -78,  -460,  -460,   -78,  -460,  -460,   -78,
 1073     -460,  -460,   120,  -460,  -460,   120,  -460,  -460,   -78,  -460,
 1074     -460,  -460,    64,  -460,  -460,   -78,  -460,  -460,   -78,  -460,
 1075     -460,   -78,  -460,  -460,  -460,  -460,  -460,  -460,   120,  -460,
 1076      -78,  -460,  -460,   -78,  -460,  -460,   -78,  -460,  -460,  -460,
 1077     -460,  -460,  -460,  -460,   140,  -460,  -460,    50,  -460,  -460,
 1078     -460,  -460,  -460,  -460,   -78,  -460,  -460,   -78,   120,  -460,
 1079     -460,  -460,   120,  -460,  -460,   -78,  -460,  -460,   -78,  -460,
 1080     -460,   -78,  -460,  -460,   -78,  -460,  -460,   -78,  -460,  -460,
 1081      -78,  -460,  -460,   -78,  -460,  -460,   120,  -460,  -460,   120,
 1082     -460,  -460,   -78,  -460,  -460,  -460,  -460,  -460,  -460,   120,
 1083     -460,  -460,   -78,  -460,  -460,   -78,  -460,  -460,  -460,  -460,
 1084      -78,  -460,  -460,  -460,  -460,    40,    43,    59,  -460,  -460,
 1085       56,    26,   -55,    21,  -460,  -460,    43,    43,    56,    43,
 1086       43,    43,   143,    85,  -460,    43,    43,    56,    56,    56,
 1087     -460,    85,  -460,    56,   143,  -460,    56,    43,    56,    81,
 1088     -460,    43,    43,    43,  -460,   202,  -460,   143,    43,    43,
 1089       85,  -460,    85,  -460,    43,    43,    43,   164,   164,   164,
 1090       56,  -460,  -460,    43,  -460,    43,    43,    43,  -460,   120,
 1091     -460,   120,    26,   -55,    26,  -460,   120,   -78,   -78,   -78,
 1092      -78,   -78,  -460,  -460,   -78,   120,   120,   120,   120,   120,
 1093      120,  -460,   -78,   -78,   120,  -460,   -78,   -78,   -78,  -460,
 1094      202,   140,  -460,  -460,   -78,   -78,   120,  -460,   -78,   -78,
 1095      -78,   120,   120,   120,   120,   -78,   140,   -78,   -78,    85,
 1096     -460,  -460,    26,    85,  -460,    43,    43,    43,    43,    43,
 1097      174,  -460,  -460,  -460,  -460,  -460,  -460,    56,    43,  -460,
 1098       43,    43,    43,  -460,  -460,    43,    43,  -460,    43,    43,
 1099      164,  -460,  -460,  -460,  -460,   164,  -460,    43,    43,   120,
 1100     -460,   -78,   -78,   -78,   -78,   -78,    38,   120,   -78,   -78,
 1101      -78,   120,   -78,   -78,   -78,   -78,   120,   120,   -78,   -78,
 1102     -460,    43,    43,    43,    56,    43,  -460,  -460,    43,    43,
 1103       43,  -460,    43,   164,    43,    43,  -460,  -460,    43,    43,
 1104      120,   -78,   -78,   120,   120,   -78,   120,   120,   -78,  -460,
 1105      120,   120,   120,   120,  -460,    43,    43,  -460,  -460,    43,
 1106     -460,  -460,    43,  -460,  -460,  -460,  -460,   -78,   -78,   -78,
 1107      140,    43,    43,    56,  -460,   -78,   -78,   120,    43,    43,
 1108     -460,   120,   -78,  -460,    91,   -78,    43,   120,  -460
 1109 };
 1110 
 1111   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
 1112      Performed when YYTABLE does not specify something else to do.  Zero
 1113      means the default is an error.  */
 1114 static const yytype_uint8 yydefact[] =
 1115 {
 1116        2,     0,     1,     0,     0,     0,     4,    11,    14,    13,
 1117       22,    34,    30,    31,     3,     0,    33,     7,     8,     9,
 1118       23,     0,    28,    35,    29,    10,     0,     0,     6,     5,
 1119       12,     0,     0,     0,    21,    32,     0,     0,     0,    25,
 1120       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1121        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1122        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1123        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1124        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1125        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1126        0,     0,     0,    20,    36,    15,     0,    17,    18,    19,
 1127        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1128        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1129        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1130        0,     0,     0,     0,     0,   146,     0,     0,     0,     0,
 1131        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1132        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1133        0,     0,     0,     0,     0,    16,    26,    27,    73,    68,
 1134        0,    69,    72,     0,    74,    75,     0,    76,    77,     0,
 1135      100,   101,    46,     0,    45,   102,   103,    82,    83,     0,
 1136      130,   131,    94,    95,     0,   134,   135,     0,   126,   127,
 1137        0,    84,    85,     0,   124,   125,     0,   136,   137,     0,
 1138      142,   143,    54,    53,     0,   132,   133,    78,    79,    80,
 1139       81,    86,    87,    88,    89,    90,    91,     0,    92,    93,
 1140        0,    96,    97,     0,    98,    99,     0,   108,   109,     0,
 1141      110,   111,     0,   112,   113,     0,   114,   115,     0,   120,
 1142      121,    66,     0,   122,   123,     0,   128,   129,     0,   138,
 1143      139,     0,   140,   141,   144,   145,   221,   147,     0,   148,
 1144        0,   149,   150,     0,   151,   152,     0,   153,   154,   155,
 1145      156,    39,    40,    42,     0,    37,    43,    38,   157,   158,
 1146      163,   164,   104,   105,     0,   159,   160,     0,     0,   116,
 1147      117,    64,     0,   118,   119,     0,   161,   162,     0,   165,
 1148      166,     0,   193,   194,     0,   169,   170,     0,   171,   172,
 1149        0,   173,   174,     0,   175,   176,     0,   177,   178,     0,
 1150      179,   180,     0,   181,   182,   183,   184,   185,   186,     0,
 1151      187,   188,     0,   189,   190,     0,   191,   192,   106,   107,
 1152        0,   167,   168,   195,   196,     0,     0,    70,   197,   198,
 1153        0,    47,    48,     0,   204,   213,     0,     0,     0,     0,
 1154        0,     0,     0,     0,   214,     0,     0,     0,     0,     0,
 1155      207,     0,   208,     0,     0,   211,     0,     0,     0,     0,
 1156      220,     0,     0,     0,    62,     0,   228,    41,     0,     0,
 1157        0,   236,     0,   226,     0,     0,     0,     0,     0,     0,
 1158        0,   241,   242,     0,   245,     0,     0,     0,   250,     0,
 1159       71,     0,    49,    51,    50,    57,     0,     0,     0,     0,
 1160        0,     0,    56,    55,     0,     0,     0,     0,     0,     0,
 1161        0,    67,     0,     0,     0,   222,     0,     0,     0,    60,
 1162        0,     0,    63,    44,     0,     0,     0,    65,     0,     0,
 1163        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1164      249,   203,    52,     0,   215,     0,     0,     0,     0,     0,
 1165        0,   201,   202,   205,   206,   209,   210,     0,     0,   218,
 1166        0,     0,     0,    59,    61,     0,     0,   235,     0,     0,
 1167        0,   237,   238,   239,   240,     0,   246,     0,     0,     0,
 1168       58,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1169        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1170      248,     0,     0,     0,     0,     0,   200,   212,     0,     0,
 1171        0,   225,     0,     0,     0,     0,   243,   244,     0,     0,
 1172        0,     0,     0,     0,     0,     0,     0,     0,     0,   234,
 1173        0,     0,     0,     0,   233,     0,     0,   216,   219,     0,
 1174      223,   224,     0,   230,   231,   247,   232,     0,     0,     0,
 1175        0,     0,     0,     0,   229,     0,     0,     0,     0,     0,
 1176      217,     0,     0,   199,     0,     0,     0,     0,   227
 1177 };
 1178 
 1179   /* YYPGOTO[NTERM-NUM].  */
 1180 static const yytype_int16 yypgoto[] =
 1181 {
 1182     -460,  -460,  -460,    -1,   493,   751,  -460,  -460,  -460,  -460,
 1183     -460,     0,   126,   125,   136,  -431,  -460,  -226,  -460,  -460,
 1184     -303,  -460,  -270,  -459,  -144,  -460,   -12,    30,  -460,  -460,
 1185        9,  -460,  -460,  -460,  -460,  -460,  -146,  -460,  -460,  -460,
 1186     -460,  -460,  -460,  -460,  -460,  -460,  -460,  -460,  -460,  -460,
 1187     -460,  -460,  -460,    48,  -460,  -460,  -460,    73,  -460,  -460,
 1188     -460,  -460,  -460,  -141,  -460,  -460,  -460,  -460,  -460,  -460,
 1189     -460,  -460,  -460,  -460,  -460,  -460,  -460,   679
 1190 };
 1191 
 1192   /* YYDEFGOTO[NTERM-NUM].  */
 1193 static const yytype_int16 yydefgoto[] =
 1194 {
 1195       -1,     1,    14,   106,    16,   107,    17,    18,    19,    20,
 1196       33,   186,    22,    23,    24,   294,   295,   296,   297,   193,
 1197      224,   436,   462,   406,   312,   262,   182,   183,   103,   184,
 1198      187,   211,   238,   241,   244,   190,   195,   247,   250,   253,
 1199      256,   259,   263,   266,   200,   225,   205,   217,   269,   272,
 1200      220,   277,   278,   281,   284,   287,   313,   214,   298,   305,
 1201      316,   319,   361,   208,   308,   309,   325,   328,   331,   334,
 1202      337,   340,   322,   343,   350,   353,   356,   185
 1203 };
 1204 
 1205   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
 1206      positive, shift that token.  If negative, reduce the rule whose
 1207      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 1208 static const yytype_int16 yytable[] =
 1209 {
 1210       15,    21,   504,    26,    27,    30,   302,     7,    30,    25,
 1211      300,   110,    30,     8,     9,   180,    11,   516,   365,   180,
 1212       34,    12,    13,    28,   349,   358,   347,    30,     8,     9,
 1213       39,    40,   179,    30,   180,    35,   291,   292,   111,   181,
 1214      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
 1215      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
 1216      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
 1217      142,   143,   144,   146,   147,   148,   149,   150,   151,   152,
 1218      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
 1219      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
 1220      173,    30,     7,   194,   364,   175,    30,   433,   179,   176,
 1221      177,    29,    30,     2,     3,   181,   105,     7,   174,   204,
 1222      367,   210,   105,     7,   428,   197,    35,   202,    30,     8,
 1223        9,   594,   382,   243,   246,   227,   229,   231,   233,   235,
 1224      194,    30,     8,     9,   407,    11,   430,   199,   105,     7,
 1225       12,    13,   274,    37,   175,    30,   178,   179,   394,   194,
 1226      104,   237,   180,    38,   181,   175,    30,   178,   179,   175,
 1227       30,     8,     9,   605,   276,   181,    30,     8,     9,   366,
 1228      371,   463,    30,   178,   179,   291,   292,   526,   370,   180,
 1229      503,   181,   373,    31,    32,     4,     5,     6,     7,     8,
 1230        9,    10,    11,   376,   105,     7,   377,    12,    13,   378,
 1231        8,     9,   379,    11,   345,   380,   175,    30,   381,    30,
 1232      192,   179,   289,   383,   404,   405,   180,     0,   181,     8,
 1233        9,    30,     8,     9,     0,     0,   385,     0,   180,   386,
 1234      222,     0,   387,     0,     0,   388,     0,     0,   389,    30,
 1235      178,   179,     0,     0,   391,     0,     0,   393,   181,    30,
 1236        8,     9,     0,     0,   396,     0,   466,   397,   222,     0,
 1237      398,    30,     8,     9,   105,     7,   372,   399,   180,   401,
 1238        0,     0,   402,     0,     0,   403,   459,   460,     8,     9,
 1239        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1240        0,     0,     0,   408,     0,     0,   409,   410,     0,     0,
 1241        0,   412,     0,     0,   414,     0,     0,   415,     0,     0,
 1242      416,     0,     0,   417,     0,     0,   418,     0,     0,   419,
 1243        0,     0,   420,     0,     0,   519,     0,     0,     0,     0,
 1244        0,   423,     0,     0,     0,     0,     0,     0,   412,     0,
 1245        0,   425,     0,     0,   426,     0,     0,     0,   531,   427,
 1246      432,   434,     0,     0,     0,     0,     0,     0,     0,     0,
 1247      431,     0,     0,     0,     0,     0,     0,     0,   438,     0,
 1248        0,     0,     0,     0,     0,     0,     0,   446,   447,   448,
 1249        0,     0,     0,   450,     0,     0,   452,   560,   454,     0,
 1250        0,   564,     0,     0,     0,   566,   567,     0,     0,     0,
 1251        0,   571,     0,     0,   572,   573,     0,     0,     0,     0,
 1252      474,   482,     0,     0,     0,     0,     0,     0,   479,   455,
 1253        0,     0,     0,     0,     0,   483,   485,   486,   487,   488,
 1254      489,     0,     0,   490,     0,     0,     0,   471,   472,   473,
 1255        0,   497,   498,     0,     0,   500,   501,   502,     0,     0,
 1256        0,     0,   607,   505,   506,   412,     0,   508,   509,   510,
 1257        0,     0,     0,     0,   515,     0,   517,   518,     0,     0,
 1258        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1259        0,     0,     0,     0,     0,     0,     0,   527,     0,     0,
 1260        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1261        0,     0,     0,     0,     0,     0,     0,     0,   412,    36,
 1262      541,   542,   543,   544,   545,   383,   102,   548,   549,   550,
 1263      412,   552,   553,   554,   555,     0,     0,   558,   559,     0,
 1264      536,     0,     0,     0,   563,   537,     0,     0,     0,     0,
 1265        0,     0,     0,     0,     0,     0,     0,     0,     0,   412,
 1266      575,   576,     0,   412,   579,   412,   412,   582,     0,     0,
 1267      412,   412,   412,     0,     0,     0,     0,     0,     0,     0,
 1268        0,     0,     0,   569,     0,     0,   591,   592,   593,     0,
 1269        0,     0,     0,   597,   598,   599,     0,     0,     0,     0,
 1270        0,   604,     0,     0,   606,     0,   412,   189,     0,     0,
 1271        0,     0,     0,   207,     0,   213,   216,   219,   223,     0,
 1272        0,     0,     0,     0,     0,   240,     0,     0,   249,   252,
 1273      255,   258,   261,   265,   268,   271,     0,     0,     0,   280,
 1274      283,   286,   213,   293,   207,     0,   304,   307,   311,   315,
 1275      318,   321,   324,   327,   330,   333,   336,   339,   342,   280,
 1276      207,   311,   352,   355,     0,   360,    41,    42,    43,    44,
 1277       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
 1278       55,    56,    57,    58,    59,     0,    60,    61,    62,    63,
 1279       64,    65,    66,    67,    68,     0,    69,     0,     0,     0,
 1280        0,    70,    71,     0,    72,     0,     0,    73,     0,     0,
 1281        0,     0,     0,     0,     0,     0,     0,     0,    74,    75,
 1282       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
 1283       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
 1284       96,    97,    98,    99,   100,     0,     0,     0,     0,     8,
 1285        9,     0,     0,     0,     0,     0,   101,     0,     0,     0,
 1286        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1287        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1288        0,     0,     0,     0,     0,     0,     0,     0,   108,   109,
 1289        0,     0,   188,   191,   196,   198,   201,   203,   206,   209,
 1290      212,   215,   218,   221,   226,   228,   230,   232,   234,   236,
 1291      239,   242,   245,   248,   251,   254,   257,   260,   264,   267,
 1292      270,   273,   275,   279,   145,   282,   285,   288,   290,   299,
 1293      301,   303,   306,   310,   314,   317,   320,   323,   326,   329,
 1294      332,   335,   338,   341,   344,   346,   348,   351,   354,   357,
 1295      359,   362,   363,     0,     0,     0,     0,     0,     0,   429,
 1296        0,     0,     0,     0,     0,     0,     0,     0,     0,   435,
 1297      437,     0,   439,   440,   441,   442,   443,     0,   444,   445,
 1298        0,     0,     0,     0,   449,     0,     0,   451,     0,     0,
 1299      453,     0,     0,     0,   456,   457,   458,     0,   461,     0,
 1300      293,   464,   465,   311,     0,   467,     0,   468,   469,   470,
 1301        0,     0,     0,     0,     0,     0,   475,     0,   476,   477,
 1302      478,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1303        0,     0,     0,     0,   368,     0,     0,   369,     0,     0,
 1304        0,     0,     0,     0,   374,     0,     0,     0,     0,     0,
 1305      375,     0,     0,   461,     0,     0,     0,     0,     0,     0,
 1306        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1307        0,     0,   311,     0,     0,   384,   520,     0,   521,   522,
 1308      523,   524,   525,   223,     0,     0,     0,     0,     0,     0,
 1309        0,   528,     0,   529,   530,   311,     0,     0,   532,   533,
 1310        0,   534,   535,   390,     0,     0,   392,     0,     0,     0,
 1311      538,   539,     0,   395,     0,     0,     0,     0,     0,     0,
 1312        0,     0,     0,     0,     0,     0,     0,     0,     0,   400,
 1313        0,     0,     0,     0,   311,   561,   562,     0,   311,     0,
 1314        0,   565,   311,   311,     0,   568,     0,   570,   311,     0,
 1315        0,   311,   311,     0,     0,     0,     0,     0,     0,   411,
 1316        0,     0,     0,   413,     0,     0,     0,     0,   587,   588,
 1317        0,     0,   589,     0,     0,   590,     0,     0,     0,     0,
 1318        0,     0,     0,     0,   595,   596,     0,   421,     0,     0,
 1319      422,   601,   602,     0,     0,     0,     0,   293,     0,   311,
 1320      424,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1321        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1322        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1323        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1324        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1325        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1326        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1327        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1328      480,     0,   481,     0,     0,     0,     0,   484,     0,     0,
 1329        0,     0,     0,     0,     0,     0,   491,   492,   493,   494,
 1330      495,   496,     0,     0,     0,   499,     0,     0,     0,     0,
 1331        0,     0,     0,     0,     0,     0,     0,   507,     0,     0,
 1332        0,     0,   511,   512,   513,   514,     0,     0,     0,     0,
 1333        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1334        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1335        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1336        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1337      540,     0,     0,     0,     0,     0,     0,   546,   547,     0,
 1338        0,     0,   551,     0,     0,     0,     0,   556,   557,     0,
 1339        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1340        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1341        0,   574,     0,     0,   577,   578,     0,   580,   581,     0,
 1342        0,   583,   584,   585,   586,     0,     0,     0,     0,     0,
 1343        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 1344        0,     0,     0,     0,     0,     0,     0,     0,   600,     0,
 1345        0,     0,   603,     0,     0,     0,     0,     0,   608
 1346 };
 1347 
 1348 static const yytype_int16 yycheck[] =
 1349 {
 1350        1,     1,   461,     4,     5,    85,   152,    85,    85,    84,
 1351      151,    91,    85,    86,    87,    92,    89,   476,     1,    92,
 1352       21,    94,    95,    84,   168,   171,   167,    85,    86,    87,
 1353       31,    32,    87,    85,    92,    94,    94,    95,    90,    94,
 1354       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
 1355       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
 1356       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
 1357       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
 1358       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
 1359       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
 1360      101,    85,    85,   115,    84,    84,    85,    86,    87,   110,
 1361      111,    84,    85,     0,     1,    94,    84,    85,     1,   119,
 1362       94,   121,    84,    85,    84,   116,    94,   118,    85,    86,
 1363       87,   590,    94,   133,   134,   126,   127,   128,   129,   130,
 1364      152,    85,    86,    87,    94,    89,    87,   117,    84,    85,
 1365       94,    95,   143,    27,    84,    85,    86,    87,    94,   171,
 1366       35,   131,    92,    27,    94,    84,    85,    86,    87,    84,
 1367       85,    86,    87,   604,   144,    94,    85,    86,    87,   180,
 1368      192,   407,    85,    86,    87,    94,    95,   490,   189,    92,
 1369      460,    94,   193,    90,    91,    82,    83,    84,    85,    86,
 1370       87,    88,    89,   204,    84,    85,   207,    94,    95,   210,
 1371       86,    87,   213,    89,   166,   216,    84,    85,   219,    85,
 1372       86,    87,   149,   224,    84,    85,    92,    -1,    94,    86,
 1373       87,    85,    86,    87,    -1,    -1,   237,    -1,    92,   240,
 1374       94,    -1,   243,    -1,    -1,   246,    -1,    -1,   249,    85,
 1375       86,    87,    -1,    -1,   255,    -1,    -1,   258,    94,    85,
 1376       86,    87,    -1,    -1,   265,    -1,   410,   268,    94,    -1,
 1377      271,    85,    86,    87,    84,    85,    86,   278,    92,   280,
 1378       -1,    -1,   283,    -1,    -1,   286,    84,    85,    86,    87,
 1379       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1380       -1,    -1,    -1,   304,    -1,    -1,   307,   308,    -1,    -1,
 1381       -1,   312,    -1,    -1,   315,    -1,    -1,   318,    -1,    -1,
 1382      321,    -1,    -1,   324,    -1,    -1,   327,    -1,    -1,   330,
 1383       -1,    -1,   333,    -1,    -1,   479,    -1,    -1,    -1,    -1,
 1384       -1,   342,    -1,    -1,    -1,    -1,    -1,    -1,   349,    -1,
 1385       -1,   352,    -1,    -1,   355,    -1,    -1,    -1,   502,   360,
 1386      372,   373,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1387      370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,    -1,
 1388       -1,    -1,    -1,    -1,    -1,    -1,    -1,   387,   388,   389,
 1389       -1,    -1,    -1,   393,    -1,    -1,   396,   541,   398,    -1,
 1390       -1,   545,    -1,    -1,    -1,   549,   550,    -1,    -1,    -1,
 1391       -1,   555,    -1,    -1,   558,   559,    -1,    -1,    -1,    -1,
 1392      420,   433,    -1,    -1,    -1,    -1,    -1,    -1,   429,   399,
 1393       -1,    -1,    -1,    -1,    -1,   436,   437,   438,   439,   440,
 1394      441,    -1,    -1,   444,    -1,    -1,    -1,   417,   418,   419,
 1395       -1,   452,   453,    -1,    -1,   456,   457,   458,    -1,    -1,
 1396       -1,    -1,   606,   464,   465,   466,    -1,   468,   469,   470,
 1397       -1,    -1,    -1,    -1,   475,    -1,   477,   478,    -1,    -1,
 1398       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1399       -1,    -1,    -1,    -1,    -1,    -1,    -1,   497,    -1,    -1,
 1400       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1401       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   519,    26,
 1402      521,   522,   523,   524,   525,   526,    33,   528,   529,   530,
 1403      531,   532,   533,   534,   535,    -1,    -1,   538,   539,    -1,
 1404      510,    -1,    -1,    -1,   544,   515,    -1,    -1,    -1,    -1,
 1405       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   560,
 1406      561,   562,    -1,   564,   565,   566,   567,   568,    -1,    -1,
 1407      571,   572,   573,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1408       -1,    -1,    -1,   553,    -1,    -1,   587,   588,   589,    -1,
 1409       -1,    -1,    -1,   593,   595,   596,    -1,    -1,    -1,    -1,
 1410       -1,   602,    -1,    -1,   605,    -1,   607,   114,    -1,    -1,
 1411       -1,    -1,    -1,   120,    -1,   122,   123,   124,   125,    -1,
 1412       -1,    -1,    -1,    -1,    -1,   132,    -1,    -1,   135,   136,
 1413      137,   138,   139,   140,   141,   142,    -1,    -1,    -1,   146,
 1414      147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
 1415      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
 1416      167,   168,   169,   170,    -1,   172,     3,     4,     5,     6,
 1417        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
 1418       17,    18,    19,    20,    21,    -1,    23,    24,    25,    26,
 1419       27,    28,    29,    30,    31,    -1,    33,    -1,    -1,    -1,
 1420       -1,    38,    39,    -1,    41,    -1,    -1,    44,    -1,    -1,
 1421       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    56,
 1422       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
 1423       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
 1424       77,    78,    79,    80,    81,    -1,    -1,    -1,    -1,    86,
 1425       87,    -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
 1426       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1427       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1428       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
 1429       -1,    -1,   113,   114,   115,   116,   117,   118,   119,   120,
 1430      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
 1431      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
 1432      141,   142,   143,   144,    73,   146,   147,   148,   149,   150,
 1433      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
 1434      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
 1435      171,   172,   173,    -1,    -1,    -1,    -1,    -1,    -1,   366,
 1436       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,
 1437      377,    -1,   379,   380,   381,   382,   383,    -1,   385,   386,
 1438       -1,    -1,    -1,    -1,   391,    -1,    -1,   394,    -1,    -1,
 1439      397,    -1,    -1,    -1,   401,   402,   403,    -1,   405,    -1,
 1440      407,   408,   409,   410,    -1,   412,    -1,   414,   415,   416,
 1441       -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,   425,   426,
 1442      427,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1443       -1,    -1,    -1,    -1,   183,    -1,    -1,   186,    -1,    -1,
 1444       -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,    -1,    -1,
 1445      199,    -1,    -1,   460,    -1,    -1,    -1,    -1,    -1,    -1,
 1446       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1447       -1,    -1,   479,    -1,    -1,   224,   483,    -1,   485,   486,
 1448      487,   488,   489,   490,    -1,    -1,    -1,    -1,    -1,    -1,
 1449       -1,   498,    -1,   500,   501,   502,    -1,    -1,   505,   506,
 1450       -1,   508,   509,   252,    -1,    -1,   255,    -1,    -1,    -1,
 1451      517,   518,    -1,   262,    -1,    -1,    -1,    -1,    -1,    -1,
 1452       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   278,
 1453       -1,    -1,    -1,    -1,   541,   542,   543,    -1,   545,    -1,
 1454       -1,   548,   549,   550,    -1,   552,    -1,   554,   555,    -1,
 1455       -1,   558,   559,    -1,    -1,    -1,    -1,    -1,    -1,   308,
 1456       -1,    -1,    -1,   312,    -1,    -1,    -1,    -1,   575,   576,
 1457       -1,    -1,   579,    -1,    -1,   582,    -1,    -1,    -1,    -1,
 1458       -1,    -1,    -1,    -1,   591,   592,    -1,   336,    -1,    -1,
 1459      339,   598,   599,    -1,    -1,    -1,    -1,   604,    -1,   606,
 1460      349,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1461       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1462       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1463       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1464       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1465       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1466       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1467       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1468      429,    -1,   431,    -1,    -1,    -1,    -1,   436,    -1,    -1,
 1469       -1,    -1,    -1,    -1,    -1,    -1,   445,   446,   447,   448,
 1470      449,   450,    -1,    -1,    -1,   454,    -1,    -1,    -1,    -1,
 1471       -1,    -1,    -1,    -1,    -1,    -1,    -1,   466,    -1,    -1,
 1472       -1,    -1,   471,   472,   473,   474,    -1,    -1,    -1,    -1,
 1473       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1475       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1476       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1477      519,    -1,    -1,    -1,    -1,    -1,    -1,   526,   527,    -1,
 1478       -1,    -1,   531,    -1,    -1,    -1,    -1,   536,   537,    -1,
 1479       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1480       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1481       -1,   560,    -1,    -1,   563,   564,    -1,   566,   567,    -1,
 1482       -1,   570,   571,   572,   573,    -1,    -1,    -1,    -1,    -1,
 1483       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 1484       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   597,    -1,
 1485       -1,    -1,   601,    -1,    -1,    -1,    -1,    -1,   607
 1486 };
 1487 
 1488   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
 1489      symbol of state STATE-NUM.  */
 1490 static const yytype_uint8 yystos[] =
 1491 {
 1492        0,    97,     0,     1,    82,    83,    84,    85,    86,    87,
 1493       88,    89,    94,    95,    98,    99,   100,   102,   103,   104,
 1494      105,   107,   108,   109,   110,    84,    99,    99,    84,    84,
 1495       85,    90,    91,   106,    99,    94,   100,   108,   110,    99,
 1496       99,     3,     4,     5,     6,     7,     8,     9,    10,    11,
 1497       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
 1498       23,    24,    25,    26,    27,    28,    29,    30,    31,    33,
 1499       38,    39,    41,    44,    55,    56,    57,    58,    59,    60,
 1500       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
 1501       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
 1502       81,    93,   100,   124,   109,    84,    99,   101,   101,   101,
 1503       91,    90,    99,    99,    99,    99,    99,    99,    99,    99,
 1504       99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
 1505       99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
 1506       99,    99,    99,    99,    99,   101,    99,    99,    99,    99,
 1507       99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
 1508       99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
 1509       99,    99,    99,    99,     1,    84,    99,    99,    86,    87,
 1510       92,    94,   122,   123,   125,   173,   107,   126,   173,   100,
 1511      131,   173,    86,   115,   122,   132,   173,   126,   173,   123,
 1512      140,   173,   126,   173,   107,   142,   173,   100,   159,   173,
 1513      107,   127,   173,   100,   153,   173,   100,   143,   173,   100,
 1514      146,   173,    94,   100,   116,   141,   173,   126,   173,   126,
 1515      173,   126,   173,   126,   173,   126,   173,   123,   128,   173,
 1516      100,   129,   173,   107,   130,   173,   107,   133,   173,   100,
 1517      134,   173,   100,   135,   173,   100,   136,   173,   100,   137,
 1518      173,   100,   121,   138,   173,   100,   139,   173,   100,   144,
 1519      173,   100,   145,   173,   126,   173,   123,   147,   148,   173,
 1520      100,   149,   173,   100,   150,   173,   100,   151,   173,   153,
 1521      173,    94,    95,   100,   111,   112,   113,   114,   154,   173,
 1522      159,   173,   132,   173,   100,   155,   173,   100,   160,   161,
 1523      173,   100,   120,   152,   173,   100,   156,   173,   100,   157,
 1524      173,   100,   168,   173,   100,   162,   173,   100,   163,   173,
 1525      100,   164,   173,   100,   165,   173,   100,   166,   173,   100,
 1526      167,   173,   100,   169,   173,   149,   173,   159,   173,   120,
 1527      170,   173,   100,   171,   173,   100,   172,   173,   132,   173,
 1528      100,   158,   173,   173,    84,     1,    99,    94,   101,   101,
 1529       99,   122,    86,    99,   101,   101,    99,    99,    99,    99,
 1530       99,    99,    94,    99,   101,    99,    99,    99,    99,    99,
 1531      101,    99,   101,    99,    94,   101,    99,    99,    99,    99,
 1532      101,    99,    99,    99,    84,    85,   119,    94,    99,    99,
 1533       99,   101,    99,   101,    99,    99,    99,    99,    99,    99,
 1534       99,   101,   101,    99,   101,    99,    99,    99,    84,   100,
 1535       87,   107,   122,    86,   122,   100,   117,   100,   107,   100,
 1536      100,   100,   100,   100,   100,   100,   107,   107,   107,   100,
 1537      107,   100,   107,   100,   107,   123,   100,   100,   100,    84,
 1538       85,   100,   118,   113,   100,   100,   120,   100,   100,   100,
 1539      100,   123,   123,   123,   107,   100,   100,   100,   100,    99,
 1540      101,   101,   122,    99,   101,    99,    99,    99,    99,    99,
 1541       99,   101,   101,   101,   101,   101,   101,    99,    99,   101,
 1542       99,    99,    99,   118,   119,    99,    99,   101,    99,    99,
 1543       99,   101,   101,   101,   101,    99,   119,    99,    99,   120,
 1544      100,   100,   100,   100,   100,   100,   116,   107,   100,   100,
 1545      100,   120,   100,   100,   100,   100,   123,   123,   100,   100,
 1546      101,    99,    99,    99,    99,    99,   101,   101,    99,    99,
 1547       99,   101,    99,    99,    99,    99,   101,   101,    99,    99,
 1548      120,   100,   100,   107,   120,   100,   120,   120,   100,   123,
 1549      100,   120,   120,   120,   101,    99,    99,   101,   101,    99,
 1550      101,   101,    99,   101,   101,   101,   101,   100,   100,   100,
 1551      100,    99,    99,    99,   119,   100,   100,   107,    99,    99,
 1552      101,   100,   100,   101,    99,   111,    99,   120,   101
 1553 };
 1554 
 1555   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 1556 static const yytype_uint8 yyr1[] =
 1557 {
 1558        0,    96,    97,    97,    98,    98,    98,    98,    98,    98,
 1559       98,    99,    99,   100,   100,   101,   101,   102,   103,   103,
 1560      104,   105,   105,   106,   106,   106,   106,   106,   107,   107,
 1561      108,   108,   108,   109,   109,   110,   110,   111,   111,   112,
 1562      112,   112,   113,   114,   114,   115,   115,   115,   115,   115,
 1563      115,   115,   115,   116,   116,   116,   116,   117,   117,   118,
 1564      118,   118,   119,   119,   120,   120,   121,   121,   122,   122,
 1565      122,   122,   123,   123,   124,   124,   124,   124,   124,   124,
 1566      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1567      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1568      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1569      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1570      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1571      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1572      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1573      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1574      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1575      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1576      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
 1577      124,   124,   124,   124,   124,   124,   124,   125,   126,   127,
 1578      128,   129,   130,   131,   132,   133,   134,   135,   136,   136,
 1579      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
 1580      147,   148,   148,   149,   150,   151,   152,   153,   154,   155,
 1581      156,   157,   158,   159,   160,   161,   161,   162,   163,   164,
 1582      165,   166,   167,   168,   169,   170,   171,   172,   173,   173,
 1583      173
 1584 };
 1585 
 1586   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
 1587 static const yytype_int8 yyr2[] =
 1588 {
 1589        0,     2,     0,     2,     1,     2,     2,     1,     1,     1,
 1590        2,     1,     2,     1,     1,     1,     2,     4,     4,     4,
 1591        3,     2,     1,     0,     2,     2,     4,     4,     1,     1,
 1592        1,     1,     2,     1,     1,     1,     3,     1,     1,     1,
 1593        1,     2,     1,     1,     3,     1,     1,     2,     2,     3,
 1594        3,     3,     4,     1,     1,     3,     3,     1,     3,     2,
 1595        1,     2,     1,     2,     1,     3,     1,     3,     1,     1,
 1596        2,     3,     1,     1,     3,     3,     3,     3,     3,     3,
 1597        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1598        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1599        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1600        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1601        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1602        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1603        3,     3,     3,     3,     3,     3,     2,     3,     3,     3,
 1604        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1605        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1606        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1607        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
 1608        3,     3,     3,     3,     3,     3,     3,     2,     2,    14,
 1609        6,     4,     4,     4,     2,     4,     4,     2,     2,     4,
 1610        4,     2,     6,     2,     2,     4,     8,    12,     4,     8,
 1611        2,     1,     3,     8,     8,     6,     2,    18,     2,    10,
 1612        8,     8,     8,     8,     7,     4,     2,     4,     4,     4,
 1613        4,     2,     2,     6,     6,     2,     4,     8,     6,     4,
 1614        3
 1615 };
 1616 
 1617 
 1618 enum { YYENOMEM = -2 };
 1619 
 1620 #define yyerrok         (yyerrstatus = 0)
 1621 #define yyclearin       (yychar = YYEMPTY)
 1622 
 1623 #define YYACCEPT        goto yyacceptlab
 1624 #define YYABORT         goto yyabortlab
 1625 #define YYERROR         goto yyerrorlab
 1626 
 1627 
 1628 #define YYRECOVERING()  (!!yyerrstatus)
 1629 
 1630 #define YYBACKUP(Token, Value)                                    \
 1631   do                                                              \
 1632     if (yychar == YYEMPTY)                                        \
 1633       {                                                           \
 1634         yychar = (Token);                                         \
 1635         yylval = (Value);                                         \
 1636         YYPOPSTACK (yylen);                                       \
 1637         yystate = *yyssp;                                         \
 1638         goto yybackup;                                            \
 1639       }                                                           \
 1640     else                                                          \
 1641       {                                                           \
 1642         yyerror (YY_("syntax error: cannot back up")); \
 1643         YYERROR;                                                  \
 1644       }                                                           \
 1645   while (0)
 1646 
 1647 /* Backward compatibility with an undocumented macro.
 1648    Use YYerror or YYUNDEF. */
 1649 #define YYERRCODE YYUNDEF
 1650 
 1651 
 1652 /* Enable debugging if requested.  */
 1653 #if YYDEBUG
 1654 
 1655 # ifndef YYFPRINTF
 1656 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
 1657 #  define YYFPRINTF fprintf
 1658 # endif
 1659 
 1660 # define YYDPRINTF(Args)                        \
 1661 do {                                            \
 1662   if (yydebug)                                  \
 1663     YYFPRINTF Args;                             \
 1664 } while (0)
 1665 
 1666 /* This macro is provided for backward compatibility. */
 1667 # ifndef YY_LOCATION_PRINT
 1668 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 1669 # endif
 1670 
 1671 
 1672 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
 1673 do {                                                                      \
 1674   if (yydebug)                                                            \
 1675     {                                                                     \
 1676       YYFPRINTF (stderr, "%s ", Title);                                   \
 1677       yy_symbol_print (stderr,                                            \
 1678                   Kind, Value); \
 1679       YYFPRINTF (stderr, "\n");                                           \
 1680     }                                                                     \
 1681 } while (0)
 1682 
 1683 
 1684 /*-----------------------------------.
 1685 | Print this symbol's value on YYO.  |
 1686 `-----------------------------------*/
 1687 
 1688 static void
 1689 yy_symbol_value_print (FILE *yyo,
 1690                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
 1691 {
 1692   FILE *yyoutput = yyo;
 1693   YYUSE (yyoutput);
 1694   if (!yyvaluep)
 1695     return;
 1696 # ifdef YYPRINT
 1697   if (yykind < YYNTOKENS)
 1698     YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
 1699 # endif
 1700   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 1701   YYUSE (yykind);
 1702   YY_IGNORE_MAYBE_UNINITIALIZED_END
 1703 }
 1704 
 1705 
 1706 /*---------------------------.
 1707 | Print this symbol on YYO.  |
 1708 `---------------------------*/
 1709 
 1710 static void
 1711 yy_symbol_print (FILE *yyo,
 1712                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
 1713 {
 1714   YYFPRINTF (yyo, "%s %s (",
 1715              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
 1716 
 1717   yy_symbol_value_print (yyo, yykind, yyvaluep);
 1718   YYFPRINTF (yyo, ")");
 1719 }
 1720 
 1721 /*------------------------------------------------------------------.
 1722 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
 1723 | TOP (included).                                                   |
 1724 `------------------------------------------------------------------*/
 1725 
 1726 static void
 1727 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
 1728 {
 1729   YYFPRINTF (stderr, "Stack now");
 1730   for (; yybottom <= yytop; yybottom++)
 1731     {
 1732       int yybot = *yybottom;
 1733       YYFPRINTF (stderr, " %d", yybot);
 1734     }
 1735   YYFPRINTF (stderr, "\n");
 1736 }
 1737 
 1738 # define YY_STACK_PRINT(Bottom, Top)                            \
 1739 do {                                                            \
 1740   if (yydebug)                                                  \
 1741     yy_stack_print ((Bottom), (Top));                           \
 1742 } while (0)
 1743 
 1744 
 1745 /*------------------------------------------------.
 1746 | Report that the YYRULE is going to be reduced.  |
 1747 `------------------------------------------------*/
 1748 
 1749 static void
 1750 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
 1751                  int yyrule)
 1752 {
 1753   int yylno = yyrline[yyrule];
 1754   int yynrhs = yyr2[yyrule];
 1755   int yyi;
 1756   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
 1757              yyrule - 1, yylno);
 1758   /* The symbols being reduced.  */
 1759   for (yyi = 0; yyi < yynrhs; yyi++)
 1760     {
 1761       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
 1762       yy_symbol_print (stderr,
 1763                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
 1764                        &yyvsp[(yyi + 1) - (yynrhs)]);
 1765       YYFPRINTF (stderr, "\n");
 1766     }
 1767 }
 1768 
 1769 # define YY_REDUCE_PRINT(Rule)          \
 1770 do {                                    \
 1771   if (yydebug)                          \
 1772     yy_reduce_print (yyssp, yyvsp, Rule); \
 1773 } while (0)
 1774 
 1775 /* Nonzero means print parse trace.  It is left uninitialized so that
 1776    multiple parsers can coexist.  */
 1777 int yydebug;
 1778 #else /* !YYDEBUG */
 1779 # define YYDPRINTF(Args) ((void) 0)
 1780 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
 1781 # define YY_STACK_PRINT(Bottom, Top)
 1782 # define YY_REDUCE_PRINT(Rule)
 1783 #endif /* !YYDEBUG */
 1784 
 1785 
 1786 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 1787 #ifndef YYINITDEPTH
 1788 # define YYINITDEPTH 200
 1789 #endif
 1790 
 1791 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
 1792    if the built-in stack extension method is used).
 1793 
 1794    Do not make this value too large; the results are undefined if
 1795    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
 1796    evaluated with infinite-precision integer arithmetic.  */
 1797 
 1798 #ifndef YYMAXDEPTH
 1799 # define YYMAXDEPTH 10000
 1800 #endif
 1801 
 1802 
 1803 
 1804 
 1805 
 1806 
 1807 /*-----------------------------------------------.
 1808 | Release the memory associated to this symbol.  |
 1809 `-----------------------------------------------*/
 1810 
 1811 static void
 1812 yydestruct (const char *yymsg,
 1813             yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
 1814 {
 1815   YYUSE (yyvaluep);
 1816   if (!yymsg)
 1817     yymsg = "Deleting";
 1818   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
 1819 
 1820   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 1821   YYUSE (yykind);
 1822   YY_IGNORE_MAYBE_UNINITIALIZED_END
 1823 }
 1824 
 1825 
 1826 /* The lookahead symbol.  */
 1827 int yychar;
 1828 
 1829 /* The semantic value of the lookahead symbol.  */
 1830 YYSTYPE yylval;
 1831 /* Number of syntax errors so far.  */
 1832 int yynerrs;
 1833 
 1834 
 1835 
 1836 
 1837 /*----------.
 1838 | yyparse.  |
 1839 `----------*/
 1840 
 1841 int
 1842 yyparse (void)
 1843 {
 1844     yy_state_fast_t yystate;
 1845     /* Number of tokens to shift before error messages enabled.  */
 1846     int yyerrstatus;
 1847 
 1848     /* The stacks and their tools:
 1849        'yyss': related to states.
 1850        'yyvs': related to semantic values.
 1851 
 1852        Refer to the stacks through separate pointers, to allow yyoverflow
 1853        to reallocate them elsewhere.  */
 1854 
 1855     /* Their size.  */
 1856     YYPTRDIFF_T yystacksize;
 1857 
 1858     /* The state stack.  */
 1859     yy_state_t yyssa[YYINITDEPTH];
 1860     yy_state_t *yyss;
 1861     yy_state_t *yyssp;
 1862 
 1863     /* The semantic value stack.  */
 1864     YYSTYPE yyvsa[YYINITDEPTH];
 1865     YYSTYPE *yyvs;
 1866     YYSTYPE *yyvsp;
 1867 
 1868   int yyn;
 1869   /* The return value of yyparse.  */
 1870   int yyresult;
 1871   /* Lookahead token as an internal (translated) token number.  */
 1872   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
 1873   /* The variables used to return semantic value and location from the
 1874      action routines.  */
 1875   YYSTYPE yyval;
 1876 
 1877 
 1878 
 1879 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 1880 
 1881   /* The number of symbols on the RHS of the reduced rule.
 1882      Keep to zero when no symbol should be popped.  */
 1883   int yylen = 0;
 1884 
 1885   yynerrs = 0;
 1886   yystate = 0;
 1887   yyerrstatus = 0;
 1888 
 1889   yystacksize = YYINITDEPTH;
 1890   yyssp = yyss = yyssa;
 1891   yyvsp = yyvs = yyvsa;
 1892 
 1893 
 1894   YYDPRINTF ((stderr, "Starting parse\n"));
 1895 
 1896   yychar = YYEMPTY; /* Cause a token to be read.  */
 1897   goto yysetstate;
 1898 
 1899 
 1900 /*------------------------------------------------------------.
 1901 | yynewstate -- push a new state, which is found in yystate.  |
 1902 `------------------------------------------------------------*/
 1903 yynewstate:
 1904   /* In all cases, when you get here, the value and location stacks
 1905      have just been pushed.  So pushing a state here evens the stacks.  */
 1906   yyssp++;
 1907 
 1908 
 1909 /*--------------------------------------------------------------------.
 1910 | yysetstate -- set current state (the top of the stack) to yystate.  |
 1911 `--------------------------------------------------------------------*/
 1912 yysetstate:
 1913   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 1914   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
 1915   YY_IGNORE_USELESS_CAST_BEGIN
 1916   *yyssp = YY_CAST (yy_state_t, yystate);
 1917   YY_IGNORE_USELESS_CAST_END
 1918   YY_STACK_PRINT (yyss, yyssp);
 1919 
 1920   if (yyss + yystacksize - 1 <= yyssp)
 1921 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
 1922     goto yyexhaustedlab;
 1923 #else
 1924     {
 1925       /* Get the current used size of the three stacks, in elements.  */
 1926       YYPTRDIFF_T yysize = yyssp - yyss + 1;
 1927 
 1928 # if defined yyoverflow
 1929       {
 1930         /* Give user a chance to reallocate the stack.  Use copies of
 1931            these so that the &'s don't force the real ones into
 1932            memory.  */
 1933         yy_state_t *yyss1 = yyss;
 1934         YYSTYPE *yyvs1 = yyvs;
 1935 
 1936         /* Each stack pointer address is followed by the size of the
 1937            data in use in that stack, in bytes.  This used to be a
 1938            conditional around just the two extra args, but that might
 1939            be undefined if yyoverflow is a macro.  */
 1940         yyoverflow (YY_("memory exhausted"),
 1941                     &yyss1, yysize * YYSIZEOF (*yyssp),
 1942                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
 1943                     &yystacksize);
 1944         yyss = yyss1;
 1945         yyvs = yyvs1;
 1946       }
 1947 # else /* defined YYSTACK_RELOCATE */
 1948       /* Extend the stack our own way.  */
 1949       if (YYMAXDEPTH <= yystacksize)
 1950         goto yyexhaustedlab;
 1951       yystacksize *= 2;
 1952       if (YYMAXDEPTH < yystacksize)
 1953         yystacksize = YYMAXDEPTH;
 1954 
 1955       {
 1956         yy_state_t *yyss1 = yyss;
 1957         union yyalloc *yyptr =
 1958           YY_CAST (union yyalloc *,
 1959                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
 1960         if (! yyptr)
 1961           goto yyexhaustedlab;
 1962         YYSTACK_RELOCATE (yyss_alloc, yyss);
 1963         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 1964 #  undef YYSTACK_RELOCATE
 1965         if (yyss1 != yyssa)
 1966           YYSTACK_FREE (yyss1);
 1967       }
 1968 # endif
 1969 
 1970       yyssp = yyss + yysize - 1;
 1971       yyvsp = yyvs + yysize - 1;
 1972 
 1973       YY_IGNORE_USELESS_CAST_BEGIN
 1974       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
 1975                   YY_CAST (long, yystacksize)));
 1976       YY_IGNORE_USELESS_CAST_END
 1977 
 1978       if (yyss + yystacksize - 1 <= yyssp)
 1979         YYABORT;
 1980     }
 1981 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 1982 
 1983   if (yystate == YYFINAL)
 1984     YYACCEPT;
 1985 
 1986   goto yybackup;
 1987 
 1988 
 1989 /*-----------.
 1990 | yybackup.  |
 1991 `-----------*/
 1992 yybackup:
 1993   /* Do appropriate processing given the current state.  Read a
 1994      lookahead token if we need one and don't already have one.  */
 1995 
 1996   /* First try to decide what to do without reference to lookahead token.  */
 1997   yyn = yypact[yystate];
 1998   if (yypact_value_is_default (yyn))
 1999     goto yydefault;
 2000 
 2001   /* Not known => get a lookahead token if don't already have one.  */
 2002 
 2003   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
 2004   if (yychar == YYEMPTY)
 2005     {
 2006       YYDPRINTF ((stderr, "Reading a token\n"));
 2007       yychar = yylex ();
 2008     }
 2009 
 2010   if (yychar <= YYEOF)
 2011     {
 2012       yychar = YYEOF;
 2013       yytoken = YYSYMBOL_YYEOF;
 2014       YYDPRINTF ((stderr, "Now at end of input.\n"));
 2015     }
 2016   else if (yychar == YYerror)
 2017     {
 2018       /* The scanner already issued an error message, process directly
 2019          to error recovery.  But do not keep the error token as
 2020          lookahead, it is too special and may lead us to an endless
 2021          loop in error recovery. */
 2022       yychar = YYUNDEF;
 2023       yytoken = YYSYMBOL_YYerror;
 2024       goto yyerrlab1;
 2025     }
 2026   else
 2027     {
 2028       yytoken = YYTRANSLATE (yychar);
 2029       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
 2030     }
 2031 
 2032   /* If the proper action on seeing token YYTOKEN is to reduce or to
 2033      detect an error, take that action.  */
 2034   yyn += yytoken;
 2035   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
 2036     goto yydefault;
 2037   yyn = yytable[yyn];
 2038   if (yyn <= 0)
 2039     {
 2040       if (yytable_value_is_error (yyn))
 2041         goto yyerrlab;
 2042       yyn = -yyn;
 2043       goto yyreduce;
 2044     }
 2045 
 2046   /* Count tokens shifted since error; after three, turn off error
 2047      status.  */
 2048   if (yyerrstatus)
 2049     yyerrstatus--;
 2050 
 2051   /* Shift the lookahead token.  */
 2052   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 2053   yystate = yyn;
 2054   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 2055   *++yyvsp = yylval;
 2056   YY_IGNORE_MAYBE_UNINITIALIZED_END
 2057 
 2058   /* Discard the shifted token.  */
 2059   yychar = YYEMPTY;
 2060   goto yynewstate;
 2061 
 2062 
 2063 /*-----------------------------------------------------------.
 2064 | yydefault -- do the default action for the current state.  |
 2065 `-----------------------------------------------------------*/
 2066 yydefault:
 2067   yyn = yydefact[yystate];
 2068   if (yyn == 0)
 2069     goto yyerrlab;
 2070   goto yyreduce;
 2071 
 2072 
 2073 /*-----------------------------.
 2074 | yyreduce -- do a reduction.  |
 2075 `-----------------------------*/
 2076 yyreduce:
 2077   /* yyn is the number of a rule to reduce with.  */
 2078   yylen = yyr2[yyn];
 2079 
 2080   /* If YYLEN is nonzero, implement the default value of the action:
 2081      '$$ = $1'.
 2082 
 2083      Otherwise, the following line sets YYVAL to garbage.
 2084      This behavior is undocumented and Bison
 2085      users should not rely upon it.  Assigning to YYVAL
 2086      unconditionally makes the parser a bit smaller, and it avoids a
 2087      GCC warning that YYVAL may be used uninitialized.  */
 2088   yyval = yyvsp[1-yylen];
 2089 
 2090 
 2091   YY_REDUCE_PRINT (yyn);
 2092   switch (yyn)
 2093     {
 2094   case 6:
 2095 #line 99 "zparser.y"
 2096                         {}
 2097 #line 2098 "zparser.c"
 2098     break;
 2099 
 2100   case 7:
 2101 #line 101 "zparser.y"
 2102         {
 2103         region_free_all(parser->rr_region);
 2104         parser->current_rr.type = 0;
 2105         parser->current_rr.rdata_count = 0;
 2106         parser->current_rr.rdatas = parser->temporary_rdatas;
 2107         parser->error_occurred = 0;
 2108     }
 2109 #line 2110 "zparser.c"
 2110     break;
 2111 
 2112   case 8:
 2113 #line 109 "zparser.y"
 2114         {
 2115         region_free_all(parser->rr_region);
 2116         parser->current_rr.type = 0;
 2117         parser->current_rr.rdata_count = 0;
 2118         parser->current_rr.rdatas = parser->temporary_rdatas;
 2119         parser->error_occurred = 0;
 2120     }
 2121 #line 2122 "zparser.c"
 2122     break;
 2123 
 2124   case 9:
 2125 #line 117 "zparser.y"
 2126     {   /* rr should be fully parsed */
 2127         if (!parser->error_occurred) {
 2128                 parser->current_rr.rdatas
 2129                     =(rdata_atom_type *)region_alloc_array_init(
 2130                         parser->region,
 2131                         parser->current_rr.rdatas,
 2132                         parser->current_rr.rdata_count,
 2133                         sizeof(rdata_atom_type));
 2134 
 2135                 process_rr();
 2136         }
 2137 
 2138         region_free_all(parser->rr_region);
 2139 
 2140         parser->current_rr.type = 0;
 2141         parser->current_rr.rdata_count = 0;
 2142         parser->current_rr.rdatas = parser->temporary_rdatas;
 2143         parser->error_occurred = 0;
 2144     }
 2145 #line 2146 "zparser.c"
 2146     break;
 2147 
 2148   case 17:
 2149 #line 151 "zparser.y"
 2150     {
 2151         parser->default_ttl = zparser_ttl2int((yyvsp[-1].data).str, &(parser->error_occurred));
 2152         if (parser->error_occurred == 1) {
 2153             parser->default_ttl = DEFAULT_TTL;
 2154             parser->error_occurred = 0;
 2155         }
 2156     }
 2157 #line 2158 "zparser.c"
 2158     break;
 2159 
 2160   case 18:
 2161 #line 161 "zparser.y"
 2162     {
 2163         /* if previous origin is unused, remove it, do not leak it */
 2164         if(parser->origin != error_domain && parser->origin != (yyvsp[-1].domain)) {
 2165         /* protect $3 from deletion, because deldomain walks up */
 2166         (yyvsp[-1].domain)->usage ++;
 2167             domain_table_deldomain(parser->db, parser->origin);
 2168         (yyvsp[-1].domain)->usage --;
 2169         }
 2170         parser->origin = (yyvsp[-1].domain);
 2171     }
 2172 #line 2173 "zparser.c"
 2173     break;
 2174 
 2175   case 19:
 2176 #line 172 "zparser.y"
 2177     {
 2178         zc_error_prev_line("$ORIGIN directive requires absolute domain name");
 2179     }
 2180 #line 2181 "zparser.c"
 2181     break;
 2182 
 2183   case 20:
 2184 #line 178 "zparser.y"
 2185     {
 2186         parser->current_rr.owner = (yyvsp[-2].domain);
 2187         parser->current_rr.type = (yyvsp[0].type);
 2188     }
 2189 #line 2190 "zparser.c"
 2190     break;
 2191 
 2192   case 21:
 2193 #line 185 "zparser.y"
 2194     {
 2195         parser->prev_dname = (yyvsp[-1].domain);
 2196         (yyval.domain) = (yyvsp[-1].domain);
 2197     }
 2198 #line 2199 "zparser.c"
 2199     break;
 2200 
 2201   case 22:
 2202 #line 190 "zparser.y"
 2203     {
 2204         (yyval.domain) = parser->prev_dname;
 2205     }
 2206 #line 2207 "zparser.c"
 2207     break;
 2208 
 2209   case 23:
 2210 #line 196 "zparser.y"
 2211     {
 2212         parser->current_rr.ttl = parser->default_ttl;
 2213         parser->current_rr.klass = parser->default_class;
 2214     }
 2215 #line 2216 "zparser.c"
 2216     break;
 2217 
 2218   case 24:
 2219 #line 201 "zparser.y"
 2220     {
 2221         parser->current_rr.ttl = parser->default_ttl;
 2222         parser->current_rr.klass = (yyvsp[-1].klass);
 2223     }
 2224 #line 2225 "zparser.c"
 2225     break;
 2226 
 2227   case 25:
 2228 #line 206 "zparser.y"
 2229     {
 2230         parser->current_rr.ttl = (yyvsp[-1].ttl);
 2231         parser->current_rr.klass = parser->default_class;
 2232     }
 2233 #line 2234 "zparser.c"
 2234     break;
 2235 
 2236   case 26:
 2237 #line 211 "zparser.y"
 2238     {
 2239         parser->current_rr.ttl = (yyvsp[-3].ttl);
 2240         parser->current_rr.klass = (yyvsp[-1].klass);
 2241     }
 2242 #line 2243 "zparser.c"
 2243     break;
 2244 
 2245   case 27:
 2246 #line 216 "zparser.y"
 2247     {
 2248         parser->current_rr.ttl = (yyvsp[-1].ttl);
 2249         parser->current_rr.klass = (yyvsp[-3].klass);
 2250     }
 2251 #line 2252 "zparser.c"
 2252     break;
 2253 
 2254   case 29:
 2255 #line 224 "zparser.y"
 2256     {
 2257         if ((yyvsp[0].dname) == error_dname) {
 2258             (yyval.domain) = error_domain;
 2259         } else if(parser->origin == error_domain) {
 2260             zc_error("cannot concatenate origin to domain name, because origin failed to parse");
 2261             (yyval.domain) = error_domain;
 2262         } else if ((yyvsp[0].dname)->name_size + domain_dname(parser->origin)->name_size - 1 > MAXDOMAINLEN) {
 2263             zc_error("domain name exceeds %d character limit", MAXDOMAINLEN);
 2264             (yyval.domain) = error_domain;
 2265         } else {
 2266             (yyval.domain) = domain_table_insert(
 2267                 parser->db->domains,
 2268                 dname_concatenate(
 2269                     parser->rr_region,
 2270                     (yyvsp[0].dname),
 2271                     domain_dname(parser->origin)));
 2272         }
 2273     }
 2274 #line 2275 "zparser.c"
 2275     break;
 2276 
 2277   case 30:
 2278 #line 245 "zparser.y"
 2279     {
 2280         (yyval.domain) = parser->db->domains->root;
 2281     }
 2282 #line 2283 "zparser.c"
 2283     break;
 2284 
 2285   case 31:
 2286 #line 249 "zparser.y"
 2287     {
 2288         (yyval.domain) = parser->origin;
 2289     }
 2290 #line 2291 "zparser.c"
 2291     break;
 2292 
 2293   case 32:
 2294 #line 253 "zparser.y"
 2295     {
 2296         if ((yyvsp[-1].dname) != error_dname) {
 2297             (yyval.domain) = domain_table_insert(parser->db->domains, (yyvsp[-1].dname));
 2298         } else {
 2299             (yyval.domain) = error_domain;
 2300         }
 2301     }
 2302 #line 2303 "zparser.c"
 2303     break;
 2304 
 2305   case 33:
 2306 #line 263 "zparser.y"
 2307     {
 2308         if ((yyvsp[0].data).len > MAXLABELLEN) {
 2309             zc_error("label exceeds %d character limit", MAXLABELLEN);
 2310             (yyval.dname) = error_dname;
 2311         } else if ((yyvsp[0].data).len <= 0) {
 2312             zc_error("zero label length");
 2313             (yyval.dname) = error_dname;
 2314         } else {
 2315             (yyval.dname) = dname_make_from_label(parser->rr_region,
 2316                            (uint8_t *) (yyvsp[0].data).str,
 2317                            (yyvsp[0].data).len);
 2318         }
 2319     }
 2320 #line 2321 "zparser.c"
 2321     break;
 2322 
 2323   case 34:
 2324 #line 277 "zparser.y"
 2325     {
 2326         zc_error("bitlabels are now deprecated. RFC2673 is obsoleted.");
 2327         (yyval.dname) = error_dname;
 2328     }
 2329 #line 2330 "zparser.c"
 2330     break;
 2331 
 2332   case 36:
 2333 #line 285 "zparser.y"
 2334     {
 2335         if ((yyvsp[-2].dname) == error_dname || (yyvsp[0].dname) == error_dname) {
 2336             (yyval.dname) = error_dname;
 2337         } else if ((yyvsp[-2].dname)->name_size + (yyvsp[0].dname)->name_size - 1 > MAXDOMAINLEN) {
 2338             zc_error("domain name exceeds %d character limit",
 2339                  MAXDOMAINLEN);
 2340             (yyval.dname) = error_dname;
 2341         } else {
 2342             (yyval.dname) = dname_concatenate(parser->rr_region, (yyvsp[-2].dname), (yyvsp[0].dname));
 2343         }
 2344     }
 2345 #line 2346 "zparser.c"
 2346     break;
 2347 
 2348   case 38:
 2349 #line 304 "zparser.y"
 2350     {
 2351         /* terminate in root label and copy the origin in there */
 2352         if(parser->origin && domain_dname(parser->origin)) {
 2353             (yyval.data).len = (yyvsp[0].data).len + domain_dname(parser->origin)->name_size;
 2354             if ((yyval.data).len > MAXDOMAINLEN)
 2355                 zc_error("domain name exceeds %d character limit",
 2356                      MAXDOMAINLEN);
 2357             (yyval.data).str = (char *) region_alloc(parser->rr_region, (yyval.data).len);
 2358             memmove((yyval.data).str, (yyvsp[0].data).str, (yyvsp[0].data).len);
 2359             memmove((yyval.data).str + (yyvsp[0].data).len, dname_name(domain_dname(parser->origin)),
 2360             domain_dname(parser->origin)->name_size);
 2361         } else {
 2362             (yyval.data).len = (yyvsp[0].data).len + 1;
 2363             if ((yyval.data).len > MAXDOMAINLEN)
 2364                 zc_error("domain name exceeds %d character limit",
 2365                      MAXDOMAINLEN);
 2366             (yyval.data).str = (char *) region_alloc(parser->rr_region, (yyval.data).len);
 2367             memmove((yyval.data).str, (yyvsp[0].data).str, (yyvsp[0].data).len);
 2368             (yyval.data).str[ (yyvsp[0].data).len ] = 0;
 2369         }
 2370     }
 2371 #line 2372 "zparser.c"
 2372     break;
 2373 
 2374   case 39:
 2375 #line 328 "zparser.y"
 2376     {
 2377         char *result = (char *) region_alloc(parser->rr_region, 1);
 2378         result[0] = 0;
 2379         (yyval.data).str = result;
 2380         (yyval.data).len = 1;
 2381     }
 2382 #line 2383 "zparser.c"
 2383     break;
 2384 
 2385   case 40:
 2386 #line 335 "zparser.y"
 2387     {
 2388         if(parser->origin && domain_dname(parser->origin)) {
 2389             (yyval.data).len = domain_dname(parser->origin)->name_size;
 2390             (yyval.data).str = (char *) region_alloc(parser->rr_region, (yyval.data).len);
 2391             memmove((yyval.data).str, dname_name(domain_dname(parser->origin)), (yyval.data).len);
 2392         } else {
 2393             (yyval.data).len = 1;
 2394             (yyval.data).str = (char *) region_alloc(parser->rr_region, (yyval.data).len);
 2395             (yyval.data).str[0] = 0;
 2396         }
 2397     }
 2398 #line 2399 "zparser.c"
 2399     break;
 2400 
 2401   case 41:
 2402 #line 347 "zparser.y"
 2403     {
 2404         (yyval.data).len = (yyvsp[-1].data).len + 1;
 2405         if ((yyval.data).len > MAXDOMAINLEN)
 2406             zc_error("domain name exceeds %d character limit",
 2407                  MAXDOMAINLEN);
 2408         (yyval.data).str = (char *) region_alloc(parser->rr_region, (yyval.data).len);
 2409         memcpy((yyval.data).str, (yyvsp[-1].data).str, (yyvsp[-1].data).len);
 2410         (yyval.data).str[(yyvsp[-1].data).len] = 0;
 2411     }
 2412 #line 2413 "zparser.c"
 2413     break;
 2414 
 2415   case 42:
 2416 #line 359 "zparser.y"
 2417     {
 2418         char *result = (char *) region_alloc(parser->rr_region,
 2419                          (yyvsp[0].data).len + 1);
 2420 
 2421         if ((yyvsp[0].data).len > MAXLABELLEN)
 2422             zc_error("label exceeds %d character limit", MAXLABELLEN);
 2423 
 2424         /* make label anyway */
 2425         result[0] = (yyvsp[0].data).len;
 2426         memmove(result+1, (yyvsp[0].data).str, (yyvsp[0].data).len);
 2427 
 2428         (yyval.data).str = result;
 2429         (yyval.data).len = (yyvsp[0].data).len + 1;
 2430     }
 2431 #line 2432 "zparser.c"
 2432     break;
 2433 
 2434   case 44:
 2435 #line 377 "zparser.y"
 2436     {
 2437         (yyval.data).len = (yyvsp[-2].data).len + (yyvsp[0].data).len;
 2438         if ((yyval.data).len > MAXDOMAINLEN)
 2439             zc_error("domain name exceeds %d character limit",
 2440                  MAXDOMAINLEN);
 2441         (yyval.data).str = (char *) region_alloc(parser->rr_region, (yyval.data).len);
 2442         memmove((yyval.data).str, (yyvsp[-2].data).str, (yyvsp[-2].data).len);
 2443         memmove((yyval.data).str + (yyvsp[-2].data).len, (yyvsp[0].data).str, (yyvsp[0].data).len);
 2444     }
 2445 #line 2446 "zparser.c"
 2446     break;
 2447 
 2448   case 45:
 2449 #line 389 "zparser.y"
 2450     {
 2451         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[0].data).str, (yyvsp[0].data).len), 1);
 2452     }
 2453 #line 2454 "zparser.c"
 2454     break;
 2455 
 2456   case 46:
 2457 #line 393 "zparser.y"
 2458     {
 2459         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[0].data).str, (yyvsp[0].data).len), 1);
 2460     }
 2461 #line 2462 "zparser.c"
 2462     break;
 2463 
 2464   case 47:
 2465 #line 397 "zparser.y"
 2466     {
 2467         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[-1].data).str, (yyvsp[-1].data).len), 1);
 2468         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[0].data).str, (yyvsp[0].data).len), 0);
 2469     }
 2470 #line 2471 "zparser.c"
 2471     break;
 2472 
 2473   case 48:
 2474 #line 402 "zparser.y"
 2475     {
 2476         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[0].data).str, (yyvsp[0].data).len), 0);
 2477     }
 2478 #line 2479 "zparser.c"
 2479     break;
 2480 
 2481   case 49:
 2482 #line 406 "zparser.y"
 2483     {
 2484         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[-1].data).str, (yyvsp[-1].data).len), 0);
 2485         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[0].data).str, (yyvsp[0].data).len), 0);
 2486     }
 2487 #line 2488 "zparser.c"
 2488     break;
 2489 
 2490   case 50:
 2491 #line 411 "zparser.y"
 2492     {
 2493         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[0].data).str, (yyvsp[0].data).len), 0);
 2494     }
 2495 #line 2496 "zparser.c"
 2496     break;
 2497 
 2498   case 51:
 2499 #line 415 "zparser.y"
 2500     {
 2501         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[0].data).str, (yyvsp[0].data).len), 0);
 2502     }
 2503 #line 2504 "zparser.c"
 2504     break;
 2505 
 2506   case 52:
 2507 #line 419 "zparser.y"
 2508     {
 2509         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[-1].data).str, (yyvsp[-1].data).len), 0);
 2510         zadd_rdata_txt_wireformat(zparser_conv_text(parser->rr_region, (yyvsp[0].data).str, (yyvsp[0].data).len), 0);
 2511     }
 2512 #line 2513 "zparser.c"
 2513     break;
 2514 
 2515   case 54:
 2516 #line 431 "zparser.y"
 2517     {
 2518         (yyval.data).len = 1;
 2519         (yyval.data).str = region_strdup(parser->rr_region, ".");
 2520     }
 2521 #line 2522 "zparser.c"
 2522     break;
 2523 
 2524   case 55:
 2525 #line 436 "zparser.y"
 2526     {
 2527         (yyval.data).len = (yyvsp[-2].data).len + (yyvsp[0].data).len + 1;
 2528         (yyval.data).str = (char *) region_alloc(parser->rr_region, (yyval.data).len + 1);
 2529         memcpy((yyval.data).str, (yyvsp[-2].data).str, (yyvsp[-2].data).len);
 2530         memcpy((yyval.data).str + (yyvsp[-2].data).len, " ", 1);
 2531         memcpy((yyval.data).str + (yyvsp[-2].data).len + 1, (yyvsp[0].data).str, (yyvsp[0].data).len);
 2532         (yyval.data).str[(yyval.data).len] = '\0';
 2533     }
 2534 #line 2535 "zparser.c"
 2535     break;
 2536 
 2537   case 56:
 2538 #line 445 "zparser.y"
 2539     {
 2540         (yyval.data).len = (yyvsp[-2].data).len + (yyvsp[0].data).len + 1;
 2541         (yyval.data).str = (char *) region_alloc(parser->rr_region, (yyval.data).len + 1);
 2542         memcpy((yyval.data).str, (yyvsp[-2].data).str, (yyvsp[-2].data).len);
 2543         memcpy((yyval.data).str + (yyvsp[-2].data).len, ".", 1);
 2544         memcpy((yyval.data).str + (yyvsp[-2].data).len + 1, (yyvsp[0].data).str, (yyvsp[0].data).len);
 2545         (yyval.data).str[(yyval.data).len] = '\0';
 2546     }
 2547 #line 2548 "zparser.c"
 2548     break;
 2549 
 2550   case 57:
 2551 #line 457 "zparser.y"
 2552     {
 2553         uint16_t type = rrtype_from_string((yyvsp[0].data).str);
 2554         if (type != 0 && type < 128) {
 2555             set_bit(nxtbits, type);
 2556         } else {
 2557             zc_error("bad type %d in NXT record", (int) type);
 2558         }
 2559     }
 2560 #line 2561 "zparser.c"
 2561     break;
 2562 
 2563   case 58:
 2564 #line 466 "zparser.y"
 2565     {
 2566         uint16_t type = rrtype_from_string((yyvsp[0].data).str);
 2567         if (type != 0 && type < 128) {
 2568             set_bit(nxtbits, type);
 2569         } else {
 2570             zc_error("bad type %d in NXT record", (int) type);
 2571         }
 2572     }
 2573 #line 2574 "zparser.c"
 2574     break;
 2575 
 2576   case 59:
 2577 #line 477 "zparser.y"
 2578     {
 2579     }
 2580 #line 2581 "zparser.c"
 2581     break;
 2582 
 2583   case 60:
 2584 #line 480 "zparser.y"
 2585     {
 2586     }
 2587 #line 2588 "zparser.c"
 2588     break;
 2589 
 2590   case 61:
 2591 #line 483 "zparser.y"
 2592     {
 2593         uint16_t type = rrtype_from_string((yyvsp[-1].data).str);
 2594         if (type != 0) {
 2595                     if (type > nsec_highest_rcode) {
 2596                             nsec_highest_rcode = type;
 2597                     }
 2598             set_bitnsec(nsecbits, type);
 2599         } else {
 2600             zc_error("bad type %d in NSEC record", (int) type);
 2601         }
 2602     }
 2603 #line 2604 "zparser.c"
 2604     break;
 2605 
 2606   case 65:
 2607 #line 506 "zparser.y"
 2608     {
 2609         char *result = (char *) region_alloc(parser->rr_region,
 2610                          (yyvsp[-2].data).len + (yyvsp[0].data).len + 1);
 2611         memcpy(result, (yyvsp[-2].data).str, (yyvsp[-2].data).len);
 2612         memcpy(result + (yyvsp[-2].data).len, (yyvsp[0].data).str, (yyvsp[0].data).len);
 2613         (yyval.data).str = result;
 2614         (yyval.data).len = (yyvsp[-2].data).len + (yyvsp[0].data).len;
 2615         (yyval.data).str[(yyval.data).len] = '\0';
 2616     }
 2617 #line 2618 "zparser.c"
 2618     break;
 2619 
 2620   case 67:
 2621 #line 523 "zparser.y"
 2622     {
 2623         char *result = (char *) region_alloc(parser->rr_region,
 2624                          (yyvsp[-2].data).len + (yyvsp[0].data).len + 1);
 2625         memcpy(result, (yyvsp[-2].data).str, (yyvsp[-2].data).len);
 2626         memcpy(result + (yyvsp[-2].data).len, (yyvsp[0].data).str, (yyvsp[0].data).len);
 2627         (yyval.data).str = result;
 2628         (yyval.data).len = (yyvsp[-2].data).len + (yyvsp[0].data).len;
 2629         (yyval.data).str[(yyval.data).len] = '\0';
 2630     }
 2631 #line 2632 "zparser.c"
 2632     break;
 2633 
 2634   case 69:
 2635 #line 539 "zparser.y"
 2636     {
 2637     (yyval.data).str = ".";
 2638     (yyval.data).len = 1;
 2639     }
 2640 #line 2641 "zparser.c"
 2641     break;
 2642 
 2643   case 70:
 2644 #line 544 "zparser.y"
 2645     {
 2646         char *result = (char *) region_alloc(parser->rr_region,
 2647                          (yyvsp[-1].data).len + 2);
 2648         memcpy(result, (yyvsp[-1].data).str, (yyvsp[-1].data).len);
 2649         result[(yyvsp[-1].data).len] = '.';
 2650         (yyval.data).str = result;
 2651         (yyval.data).len = (yyvsp[-1].data).len + 1;
 2652         (yyval.data).str[(yyval.data).len] = '\0';
 2653     }
 2654 #line 2655 "zparser.c"
 2655     break;
 2656 
 2657   case 71:
 2658 #line 554 "zparser.y"
 2659     {
 2660         char *result = (char *) region_alloc(parser->rr_region,
 2661                          (yyvsp[-2].data).len + (yyvsp[0].data).len + 2);
 2662         memcpy(result, (yyvsp[-2].data).str, (yyvsp[-2].data).len);
 2663         result[(yyvsp[-2].data).len] = '.';
 2664         memcpy(result + (yyvsp[-2].data).len + 1, (yyvsp[0].data).str, (yyvsp[0].data).len);
 2665         (yyval.data).str = result;
 2666         (yyval.data).len = (yyvsp[-2].data).len + (yyvsp[0].data).len + 1;
 2667         (yyval.data).str[(yyval.data).len] = '\0';
 2668     }
 2669 #line 2670 "zparser.c"
 2670     break;
 2671 
 2672   case 75:
 2673 #line 577 "zparser.y"
 2674                              { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2675 #line 2676 "zparser.c"
 2676     break;
 2677 
 2678   case 77:
 2679 #line 579 "zparser.y"
 2680                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2681 #line 2682 "zparser.c"
 2682     break;
 2683 
 2684   case 78:
 2685 #line 580 "zparser.y"
 2686                                   { zc_warning_prev_line("MD is obsolete"); }
 2687 #line 2688 "zparser.c"
 2688     break;
 2689 
 2690   case 79:
 2691 #line 582 "zparser.y"
 2692     {
 2693         zc_warning_prev_line("MD is obsolete");
 2694         (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown));
 2695     }
 2696 #line 2697 "zparser.c"
 2697     break;
 2698 
 2699   case 80:
 2700 #line 586 "zparser.y"
 2701                                   { zc_warning_prev_line("MF is obsolete"); }
 2702 #line 2703 "zparser.c"
 2703     break;
 2704 
 2705   case 81:
 2706 #line 588 "zparser.y"
 2707     {
 2708         zc_warning_prev_line("MF is obsolete");
 2709         (yyval.type) = (yyvsp[-2].type);
 2710         parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown));
 2711     }
 2712 #line 2713 "zparser.c"
 2713     break;
 2714 
 2715   case 83:
 2716 #line 594 "zparser.y"
 2717                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2718 #line 2719 "zparser.c"
 2719     break;
 2720 
 2721   case 85:
 2722 #line 596 "zparser.y"
 2723                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2724 #line 2725 "zparser.c"
 2725     break;
 2726 
 2727   case 86:
 2728 #line 597 "zparser.y"
 2729                                   { zc_warning_prev_line("MB is obsolete"); }
 2730 #line 2731 "zparser.c"
 2731     break;
 2732 
 2733   case 87:
 2734 #line 599 "zparser.y"
 2735     {
 2736         zc_warning_prev_line("MB is obsolete");
 2737         (yyval.type) = (yyvsp[-2].type);
 2738         parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown));
 2739     }
 2740 #line 2741 "zparser.c"
 2741     break;
 2742 
 2743   case 89:
 2744 #line 605 "zparser.y"
 2745                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2746 #line 2747 "zparser.c"
 2747     break;
 2748 
 2749   case 91:
 2750 #line 607 "zparser.y"
 2751                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2752 #line 2753 "zparser.c"
 2753     break;
 2754 
 2755   case 93:
 2756 #line 610 "zparser.y"
 2757                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2758 #line 2759 "zparser.c"
 2759     break;
 2760 
 2761   case 95:
 2762 #line 612 "zparser.y"
 2763                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2764 #line 2765 "zparser.c"
 2765     break;
 2766 
 2767   case 97:
 2768 #line 614 "zparser.y"
 2769                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2770 #line 2771 "zparser.c"
 2771     break;
 2772 
 2773   case 99:
 2774 #line 616 "zparser.y"
 2775                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2776 #line 2777 "zparser.c"
 2777     break;
 2778 
 2779   case 101:
 2780 #line 618 "zparser.y"
 2781                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2782 #line 2783 "zparser.c"
 2783     break;
 2784 
 2785   case 103:
 2786 #line 620 "zparser.y"
 2787                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2788 #line 2789 "zparser.c"
 2789     break;
 2790 
 2791   case 105:
 2792 #line 622 "zparser.y"
 2793                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2794 #line 2795 "zparser.c"
 2795     break;
 2796 
 2797   case 107:
 2798 #line 624 "zparser.y"
 2799                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2800 #line 2801 "zparser.c"
 2801     break;
 2802 
 2803   case 109:
 2804 #line 626 "zparser.y"
 2805                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2806 #line 2807 "zparser.c"
 2807     break;
 2808 
 2809   case 111:
 2810 #line 628 "zparser.y"
 2811                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2812 #line 2813 "zparser.c"
 2813     break;
 2814 
 2815   case 113:
 2816 #line 630 "zparser.y"
 2817                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2818 #line 2819 "zparser.c"
 2819     break;
 2820 
 2821   case 115:
 2822 #line 632 "zparser.y"
 2823                                 { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2824 #line 2825 "zparser.c"
 2825     break;
 2826 
 2827   case 117:
 2828 #line 634 "zparser.y"
 2829                                     { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2830 #line 2831 "zparser.c"
 2831     break;
 2832 
 2833   case 119:
 2834 #line 636 "zparser.y"
 2835                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2836 #line 2837 "zparser.c"
 2837     break;
 2838 
 2839   case 121:
 2840 #line 638 "zparser.y"
 2841                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2842 #line 2843 "zparser.c"
 2843     break;
 2844 
 2845   case 123:
 2846 #line 640 "zparser.y"
 2847                                 { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2848 #line 2849 "zparser.c"
 2849     break;
 2850 
 2851   case 125:
 2852 #line 642 "zparser.y"
 2853                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2854 #line 2855 "zparser.c"
 2855     break;
 2856 
 2857   case 127:
 2858 #line 644 "zparser.y"
 2859                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2860 #line 2861 "zparser.c"
 2861     break;
 2862 
 2863   case 129:
 2864 #line 646 "zparser.y"
 2865                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2866 #line 2867 "zparser.c"
 2867     break;
 2868 
 2869   case 131:
 2870 #line 648 "zparser.y"
 2871                                 { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2872 #line 2873 "zparser.c"
 2873     break;
 2874 
 2875   case 133:
 2876 #line 650 "zparser.y"
 2877                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2878 #line 2879 "zparser.c"
 2879     break;
 2880 
 2881   case 135:
 2882 #line 652 "zparser.y"
 2883                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2884 #line 2885 "zparser.c"
 2885     break;
 2886 
 2887   case 137:
 2888 #line 654 "zparser.y"
 2889                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2890 #line 2891 "zparser.c"
 2891     break;
 2892 
 2893   case 139:
 2894 #line 656 "zparser.y"
 2895                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2896 #line 2897 "zparser.c"
 2897     break;
 2898 
 2899   case 141:
 2900 #line 658 "zparser.y"
 2901                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2902 #line 2903 "zparser.c"
 2903     break;
 2904 
 2905   case 143:
 2906 #line 660 "zparser.y"
 2907                                 { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2908 #line 2909 "zparser.c"
 2909     break;
 2910 
 2911   case 145:
 2912 #line 662 "zparser.y"
 2913                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2914 #line 2915 "zparser.c"
 2915     break;
 2916 
 2917   case 148:
 2918 #line 665 "zparser.y"
 2919                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2920 #line 2921 "zparser.c"
 2921     break;
 2922 
 2923   case 150:
 2924 #line 667 "zparser.y"
 2925                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2926 #line 2927 "zparser.c"
 2927     break;
 2928 
 2929   case 151:
 2930 #line 668 "zparser.y"
 2931                            { if (dlv_warn) { dlv_warn = 0; zc_warning_prev_line("DLV is experimental"); } }
 2932 #line 2933 "zparser.c"
 2933     break;
 2934 
 2935   case 152:
 2936 #line 669 "zparser.y"
 2937                                { if (dlv_warn) { dlv_warn = 0; zc_warning_prev_line("DLV is experimental"); } (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2938 #line 2939 "zparser.c"
 2939     break;
 2940 
 2941   case 154:
 2942 #line 671 "zparser.y"
 2943                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); check_sshfp(); }
 2944 #line 2945 "zparser.c"
 2945     break;
 2946 
 2947   case 156:
 2948 #line 673 "zparser.y"
 2949                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2950 #line 2951 "zparser.c"
 2951     break;
 2952 
 2953   case 158:
 2954 #line 675 "zparser.y"
 2955                                 { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2956 #line 2957 "zparser.c"
 2957     break;
 2958 
 2959   case 160:
 2960 #line 677 "zparser.y"
 2961                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2962 #line 2963 "zparser.c"
 2963     break;
 2964 
 2965   case 162:
 2966 #line 679 "zparser.y"
 2967                                       { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2968 #line 2969 "zparser.c"
 2969     break;
 2970 
 2971   case 164:
 2972 #line 681 "zparser.y"
 2973                                   { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2974 #line 2975 "zparser.c"
 2975     break;
 2976 
 2977   case 166:
 2978 #line 683 "zparser.y"
 2979                                 { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2980 #line 2981 "zparser.c"
 2981     break;
 2982 
 2983   case 168:
 2984 #line 685 "zparser.y"
 2985                                   { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2986 #line 2987 "zparser.c"
 2987     break;
 2988 
 2989   case 170:
 2990 #line 687 "zparser.y"
 2991                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2992 #line 2993 "zparser.c"
 2993     break;
 2994 
 2995   case 172:
 2996 #line 689 "zparser.y"
 2997                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 2998 #line 2999 "zparser.c"
 2999     break;
 3000 
 3001   case 174:
 3002 #line 691 "zparser.y"
 3003                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3004 #line 3005 "zparser.c"
 3005     break;
 3006 
 3007   case 176:
 3008 #line 693 "zparser.y"
 3009                               { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3010 #line 3011 "zparser.c"
 3011     break;
 3012 
 3013   case 178:
 3014 #line 695 "zparser.y"
 3015                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3016 #line 3017 "zparser.c"
 3017     break;
 3018 
 3019   case 180:
 3020 #line 697 "zparser.y"
 3021                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3022 #line 3023 "zparser.c"
 3023     break;
 3024 
 3025   case 182:
 3026 #line 699 "zparser.y"
 3027                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3028 #line 3029 "zparser.c"
 3029     break;
 3030 
 3031   case 184:
 3032 #line 701 "zparser.y"
 3033                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3034 #line 3035 "zparser.c"
 3035     break;
 3036 
 3037   case 186:
 3038 #line 703 "zparser.y"
 3039                                    { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3040 #line 3041 "zparser.c"
 3041     break;
 3042 
 3043   case 188:
 3044 #line 705 "zparser.y"
 3045                                       { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3046 #line 3047 "zparser.c"
 3047     break;
 3048 
 3049   case 190:
 3050 #line 707 "zparser.y"
 3051                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3052 #line 3053 "zparser.c"
 3053     break;
 3054 
 3055   case 192:
 3056 #line 709 "zparser.y"
 3057                                   { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3058 #line 3059 "zparser.c"
 3059     break;
 3060 
 3061   case 194:
 3062 #line 711 "zparser.y"
 3063                                { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3064 #line 3065 "zparser.c"
 3065     break;
 3066 
 3067   case 195:
 3068 #line 712 "zparser.y"
 3069                                  { (yyval.type) = (yyvsp[-2].type); parse_unknown_rdata((yyvsp[-2].type), (yyvsp[0].unknown)); }
 3070 #line 3071 "zparser.c"
 3071     break;
 3072 
 3073   case 196:
 3074 #line 714 "zparser.y"
 3075     {
 3076         zc_error_prev_line("unrecognized RR type '%s'", (yyvsp[-2].data).str);
 3077     }
 3078 #line 3079 "zparser.c"
 3079     break;
 3080 
 3081   case 197:
 3082 #line 726 "zparser.y"
 3083     {
 3084         zadd_rdata_wireformat(zparser_conv_a(parser->region, (yyvsp[-1].data).str));
 3085     }
 3086 #line 3087 "zparser.c"
 3087     break;
 3088 
 3089   case 198:
 3090 #line 732 "zparser.y"
 3091     {
 3092         /* convert a single dname record */
 3093         zadd_rdata_domain((yyvsp[-1].domain));
 3094     }
 3095 #line 3096 "zparser.c"
 3096     break;
 3097 
 3098   case 199:
 3099 #line 739 "zparser.y"
 3100     {
 3101         /* convert the soa data */
 3102         zadd_rdata_domain((yyvsp[-13].domain)); /* prim. ns */
 3103         zadd_rdata_domain((yyvsp[-11].domain)); /* email */
 3104         zadd_rdata_wireformat(zparser_conv_serial(parser->region, (yyvsp[-9].data).str)); /* serial */
 3105         zadd_rdata_wireformat(zparser_conv_period(parser->region, (yyvsp[-7].data).str)); /* refresh */
 3106         zadd_rdata_wireformat(zparser_conv_period(parser->region, (yyvsp[-5].data).str)); /* retry */
 3107         zadd_rdata_wireformat(zparser_conv_period(parser->region, (yyvsp[-3].data).str)); /* expire */
 3108         zadd_rdata_wireformat(zparser_conv_period(parser->region, (yyvsp[-1].data).str)); /* minimum */
 3109     }
 3110 #line 3111 "zparser.c"
 3111     break;
 3112 
 3113   case 200:
 3114 #line 752 "zparser.y"
 3115     {
 3116         zadd_rdata_wireformat(zparser_conv_a(parser->region, (yyvsp[-5].data).str)); /* address */
 3117         zadd_rdata_wireformat(zparser_conv_services(parser->region, (yyvsp[-3].data).str, (yyvsp[-1].data).str)); /* protocol and services */
 3118     }
 3119 #line 3120 "zparser.c"
 3120     break;
 3121 
 3122   case 201:
 3123 #line 759 "zparser.y"
 3124     {
 3125         zadd_rdata_wireformat(zparser_conv_text(parser->region, (yyvsp[-3].data).str, (yyvsp[-3].data).len)); /* CPU */
 3126         zadd_rdata_wireformat(zparser_conv_text(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* OS*/
 3127     }
 3128 #line 3129 "zparser.c"
 3129     break;
 3130 
 3131   case 202:
 3132 #line 766 "zparser.y"
 3133     {
 3134         /* convert a single dname record */
 3135         zadd_rdata_domain((yyvsp[-3].domain));
 3136         zadd_rdata_domain((yyvsp[-1].domain));
 3137     }
 3138 #line 3139 "zparser.c"
 3139     break;
 3140 
 3141   case 203:
 3142 #line 774 "zparser.y"
 3143     {
 3144         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str));  /* priority */
 3145         zadd_rdata_domain((yyvsp[-1].domain));  /* MX host */
 3146     }
 3147 #line 3148 "zparser.c"
 3148     break;
 3149 
 3150   case 204:
 3151 #line 781 "zparser.y"
 3152     {
 3153     zadd_rdata_txt_clean_wireformat();
 3154     }
 3155 #line 3156 "zparser.c"
 3156     break;
 3157 
 3158   case 205:
 3159 #line 788 "zparser.y"
 3160     {
 3161         zadd_rdata_domain((yyvsp[-3].domain)); /* mbox d-name */
 3162         zadd_rdata_domain((yyvsp[-1].domain)); /* txt d-name */
 3163     }
 3164 #line 3165 "zparser.c"
 3165     break;
 3166 
 3167   case 206:
 3168 #line 796 "zparser.y"
 3169     {
 3170         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str)); /* subtype */
 3171         zadd_rdata_domain((yyvsp[-1].domain)); /* domain name */
 3172     }
 3173 #line 3174 "zparser.c"
 3174     break;
 3175 
 3176   case 207:
 3177 #line 804 "zparser.y"
 3178     {
 3179         zadd_rdata_wireformat(zparser_conv_text(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* X.25 address. */
 3180     }
 3181 #line 3182 "zparser.c"
 3182     break;
 3183 
 3184   case 208:
 3185 #line 811 "zparser.y"
 3186     {
 3187         zadd_rdata_wireformat(zparser_conv_text(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* address */
 3188     }
 3189 #line 3190 "zparser.c"
 3190     break;
 3191 
 3192   case 209:
 3193 #line 815 "zparser.y"
 3194     {
 3195         zadd_rdata_wireformat(zparser_conv_text(parser->region, (yyvsp[-3].data).str, (yyvsp[-3].data).len)); /* address */
 3196         zadd_rdata_wireformat(zparser_conv_text(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* sub-address */
 3197     }
 3198 #line 3199 "zparser.c"
 3199     break;
 3200 
 3201   case 210:
 3202 #line 823 "zparser.y"
 3203     {
 3204         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str)); /* preference */
 3205         zadd_rdata_domain((yyvsp[-1].domain)); /* intermediate host */
 3206     }
 3207 #line 3208 "zparser.c"
 3208     break;
 3209 
 3210   case 211:
 3211 #line 831 "zparser.y"
 3212     {
 3213         /* String must start with "0x" or "0X".  */
 3214         if (strncasecmp((yyvsp[-1].data).str, "0x", 2) != 0) {
 3215             zc_error_prev_line("NSAP rdata must start with '0x'");
 3216         } else {
 3217             zadd_rdata_wireformat(zparser_conv_hex(parser->region, (yyvsp[-1].data).str + 2, (yyvsp[-1].data).len - 2)); /* NSAP */
 3218         }
 3219     }
 3220 #line 3221 "zparser.c"
 3221     break;
 3222 
 3223   case 212:
 3224 #line 843 "zparser.y"
 3225     {
 3226         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-5].data).str)); /* preference */
 3227         zadd_rdata_domain((yyvsp[-3].domain)); /* MAP822 */
 3228         zadd_rdata_domain((yyvsp[-1].domain)); /* MAPX400 */
 3229     }
 3230 #line 3231 "zparser.c"
 3231     break;
 3232 
 3233   case 213:
 3234 #line 851 "zparser.y"
 3235     {
 3236         zadd_rdata_wireformat(zparser_conv_aaaa(parser->region, (yyvsp[-1].data).str));  /* IPv6 address */
 3237     }
 3238 #line 3239 "zparser.c"
 3239     break;
 3240 
 3241   case 214:
 3242 #line 857 "zparser.y"
 3243     {
 3244         zadd_rdata_wireformat(zparser_conv_loc(parser->region, (yyvsp[-1].data).str)); /* Location */
 3245     }
 3246 #line 3247 "zparser.c"
 3247     break;
 3248 
 3249   case 215:
 3250 #line 863 "zparser.y"
 3251     {
 3252         zadd_rdata_domain((yyvsp[-3].domain)); /* nxt name */
 3253         zadd_rdata_wireformat(zparser_conv_nxt(parser->region, nxtbits)); /* nxt bitlist */
 3254         memset(nxtbits, 0, sizeof(nxtbits));
 3255     }
 3256 #line 3257 "zparser.c"
 3257     break;
 3258 
 3259   case 216:
 3260 #line 871 "zparser.y"
 3261     {
 3262         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-7].data).str)); /* prio */
 3263         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-5].data).str)); /* weight */
 3264         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str)); /* port */
 3265         zadd_rdata_domain((yyvsp[-1].domain)); /* target name */
 3266     }
 3267 #line 3268 "zparser.c"
 3268     break;
 3269 
 3270   case 217:
 3271 #line 881 "zparser.y"
 3272     {
 3273         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-11].data).str)); /* order */
 3274         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-9].data).str)); /* preference */
 3275         zadd_rdata_wireformat(zparser_conv_text(parser->region, (yyvsp[-7].data).str, (yyvsp[-7].data).len)); /* flags */
 3276         zadd_rdata_wireformat(zparser_conv_text(parser->region, (yyvsp[-5].data).str, (yyvsp[-5].data).len)); /* service */
 3277         zadd_rdata_wireformat(zparser_conv_text(parser->region, (yyvsp[-3].data).str, (yyvsp[-3].data).len)); /* regexp */
 3278         zadd_rdata_domain((yyvsp[-1].domain)); /* target name */
 3279     }
 3280 #line 3281 "zparser.c"
 3281     break;
 3282 
 3283   case 218:
 3284 #line 893 "zparser.y"
 3285     {
 3286         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str)); /* preference */
 3287         zadd_rdata_domain((yyvsp[-1].domain)); /* exchanger */
 3288     }
 3289 #line 3290 "zparser.c"
 3290     break;
 3291 
 3292   case 219:
 3293 #line 901 "zparser.y"
 3294     {
 3295         zadd_rdata_wireformat(zparser_conv_certificate_type(parser->region, (yyvsp[-7].data).str)); /* type */
 3296         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-5].data).str)); /* key tag */
 3297         zadd_rdata_wireformat(zparser_conv_algorithm(parser->region, (yyvsp[-3].data).str)); /* algorithm */
 3298         zadd_rdata_wireformat(zparser_conv_b64(parser->region, (yyvsp[-1].data).str)); /* certificate or CRL */
 3299     }
 3300 #line 3301 "zparser.c"
 3301     break;
 3302 
 3303   case 221:
 3304 #line 914 "zparser.y"
 3305     {
 3306         zadd_rdata_wireformat(zparser_conv_apl_rdata(parser->region, (yyvsp[0].data).str));
 3307     }
 3308 #line 3309 "zparser.c"
 3309     break;
 3310 
 3311   case 222:
 3312 #line 918 "zparser.y"
 3313     {
 3314         zadd_rdata_wireformat(zparser_conv_apl_rdata(parser->region, (yyvsp[0].data).str));
 3315     }
 3316 #line 3317 "zparser.c"
 3317     break;
 3318 
 3319   case 223:
 3320 #line 924 "zparser.y"
 3321     {
 3322         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-7].data).str)); /* keytag */
 3323         zadd_rdata_wireformat(zparser_conv_algorithm(parser->region, (yyvsp[-5].data).str)); /* alg */
 3324         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-3].data).str)); /* type */
 3325         zadd_rdata_wireformat(zparser_conv_hex(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* hash */
 3326     }
 3327 #line 3328 "zparser.c"
 3328     break;
 3329 
 3330   case 224:
 3331 #line 933 "zparser.y"
 3332     {
 3333         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-7].data).str)); /* keytag */
 3334         zadd_rdata_wireformat(zparser_conv_algorithm(parser->region, (yyvsp[-5].data).str)); /* alg */
 3335         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-3].data).str)); /* type */
 3336         zadd_rdata_wireformat(zparser_conv_hex(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* hash */
 3337     }
 3338 #line 3339 "zparser.c"
 3339     break;
 3340 
 3341   case 225:
 3342 #line 942 "zparser.y"
 3343     {
 3344         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-5].data).str)); /* alg */
 3345         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-3].data).str)); /* fp type */
 3346         zadd_rdata_wireformat(zparser_conv_hex(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* hash */
 3347         check_sshfp();
 3348     }
 3349 #line 3350 "zparser.c"
 3350     break;
 3351 
 3352   case 226:
 3353 #line 951 "zparser.y"
 3354     {
 3355         zadd_rdata_wireformat(zparser_conv_b64(parser->region, (yyvsp[-1].data).str)); /* data blob */
 3356     }
 3357 #line 3358 "zparser.c"
 3358     break;
 3359 
 3360   case 227:
 3361 #line 957 "zparser.y"
 3362     {
 3363         zadd_rdata_wireformat(zparser_conv_rrtype(parser->region, (yyvsp[-17].data).str)); /* rr covered */
 3364         zadd_rdata_wireformat(zparser_conv_algorithm(parser->region, (yyvsp[-15].data).str)); /* alg */
 3365         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-13].data).str)); /* # labels */
 3366         zadd_rdata_wireformat(zparser_conv_period(parser->region, (yyvsp[-11].data).str)); /* # orig TTL */
 3367         zadd_rdata_wireformat(zparser_conv_time(parser->region, (yyvsp[-9].data).str)); /* sig exp */
 3368         zadd_rdata_wireformat(zparser_conv_time(parser->region, (yyvsp[-7].data).str)); /* sig inc */
 3369         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-5].data).str)); /* key id */
 3370         zadd_rdata_wireformat(zparser_conv_dns_name(parser->region, 
 3371                 (const uint8_t*) (yyvsp[-3].data).str,(yyvsp[-3].data).len)); /* sig name */
 3372         zadd_rdata_wireformat(zparser_conv_b64(parser->region, (yyvsp[-1].data).str)); /* sig data */
 3373     }
 3374 #line 3375 "zparser.c"
 3375     break;
 3376 
 3377   case 228:
 3378 #line 972 "zparser.y"
 3379     {
 3380         zadd_rdata_wireformat(zparser_conv_dns_name(parser->region, 
 3381                 (const uint8_t*) (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* nsec name */
 3382         zadd_rdata_wireformat(zparser_conv_nsec(parser->region, nsecbits)); /* nsec bitlist */
 3383         memset(nsecbits, 0, sizeof(nsecbits));
 3384             nsec_highest_rcode = 0;
 3385     }
 3386 #line 3387 "zparser.c"
 3387     break;
 3388 
 3389   case 229:
 3390 #line 982 "zparser.y"
 3391     {
 3392 #ifdef NSEC3
 3393         nsec3_add_params((yyvsp[-9].data).str, (yyvsp[-7].data).str, (yyvsp[-5].data).str, (yyvsp[-3].data).str, (yyvsp[-3].data).len);
 3394 
 3395         zadd_rdata_wireformat(zparser_conv_b32(parser->region, (yyvsp[-1].data).str)); /* next hashed name */
 3396         zadd_rdata_wireformat(zparser_conv_nsec(parser->region, nsecbits)); /* nsec bitlist */
 3397         memset(nsecbits, 0, sizeof(nsecbits));
 3398         nsec_highest_rcode = 0;
 3399 #else
 3400         zc_error_prev_line("nsec3 not supported");
 3401 #endif /* NSEC3 */
 3402     }
 3403 #line 3404 "zparser.c"
 3404     break;
 3405 
 3406   case 230:
 3407 #line 997 "zparser.y"
 3408     {
 3409 #ifdef NSEC3
 3410         nsec3_add_params((yyvsp[-7].data).str, (yyvsp[-5].data).str, (yyvsp[-3].data).str, (yyvsp[-1].data).str, (yyvsp[-1].data).len);
 3411 #else
 3412         zc_error_prev_line("nsec3 not supported");
 3413 #endif /* NSEC3 */
 3414     }
 3415 #line 3416 "zparser.c"
 3416     break;
 3417 
 3418   case 231:
 3419 #line 1007 "zparser.y"
 3420     {
 3421         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-7].data).str)); /* usage */
 3422         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-5].data).str)); /* selector */
 3423         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-3].data).str)); /* matching type */
 3424         zadd_rdata_wireformat(zparser_conv_hex(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* ca data */
 3425     }
 3426 #line 3427 "zparser.c"
 3427     break;
 3428 
 3429   case 232:
 3430 #line 1016 "zparser.y"
 3431     {
 3432         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-7].data).str)); /* usage */
 3433         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-5].data).str)); /* selector */
 3434         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-3].data).str)); /* matching type */
 3435         zadd_rdata_wireformat(zparser_conv_hex(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* ca data */
 3436     }
 3437 #line 3438 "zparser.c"
 3438     break;
 3439 
 3440   case 233:
 3441 #line 1025 "zparser.y"
 3442     {
 3443         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-7].data).str)); /* flags */
 3444         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-5].data).str)); /* proto */
 3445         zadd_rdata_wireformat(zparser_conv_algorithm(parser->region, (yyvsp[-3].data).str)); /* alg */
 3446         zadd_rdata_wireformat(zparser_conv_b64(parser->region, (yyvsp[-1].data).str)); /* hash */
 3447     }
 3448 #line 3449 "zparser.c"
 3449     break;
 3450 
 3451   case 234:
 3452 #line 1034 "zparser.y"
 3453     {
 3454         const dname_type* name = 0;
 3455         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-6].data).str)); /* precedence */
 3456         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-4].data).str)); /* gateway type */
 3457         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-2].data).str)); /* algorithm */
 3458         switch(atoi((yyvsp[-4].data).str)) {
 3459         case IPSECKEY_NOGATEWAY: 
 3460             zadd_rdata_wireformat(alloc_rdata_init(parser->region, "", 0));
 3461             break;
 3462         case IPSECKEY_IP4:
 3463             zadd_rdata_wireformat(zparser_conv_a(parser->region, (yyvsp[0].data).str));
 3464             break;
 3465         case IPSECKEY_IP6:
 3466             zadd_rdata_wireformat(zparser_conv_aaaa(parser->region, (yyvsp[0].data).str));
 3467             break;
 3468         case IPSECKEY_DNAME:
 3469             /* convert and insert the dname */
 3470             if(strlen((yyvsp[0].data).str) == 0)
 3471                 zc_error_prev_line("IPSECKEY must specify gateway name");
 3472             if(!(name = dname_parse(parser->region, (yyvsp[0].data).str))) {
 3473                 zc_error_prev_line("IPSECKEY bad gateway dname %s", (yyvsp[0].data).str);
 3474                 break;
 3475             }
 3476             if((yyvsp[0].data).str[strlen((yyvsp[0].data).str)-1] != '.') {
 3477                 if(parser->origin == error_domain) {
 3478                         zc_error("cannot concatenate origin to domain name, because origin failed to parse");
 3479                     break;
 3480                 } else if(name->name_size + domain_dname(parser->origin)->name_size - 1 > MAXDOMAINLEN) {
 3481                     zc_error("ipsec gateway name exceeds %d character limit",
 3482                         MAXDOMAINLEN);
 3483                     break;
 3484                 }
 3485                 name = dname_concatenate(parser->rr_region, name, 
 3486                     domain_dname(parser->origin));
 3487             }
 3488             zadd_rdata_wireformat(alloc_rdata_init(parser->region,
 3489                 dname_name(name), name->name_size));
 3490             break;
 3491         default:
 3492             zc_error_prev_line("unknown IPSECKEY gateway type");
 3493         }
 3494     }
 3495 #line 3496 "zparser.c"
 3496     break;
 3497 
 3498   case 235:
 3499 #line 1079 "zparser.y"
 3500     {
 3501        zadd_rdata_wireformat(zparser_conv_b64(parser->region, (yyvsp[-1].data).str)); /* public key */
 3502     }
 3503 #line 3504 "zparser.c"
 3504     break;
 3505 
 3506   case 237:
 3507 #line 1087 "zparser.y"
 3508     {
 3509         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str));  /* preference */
 3510         zadd_rdata_wireformat(zparser_conv_ilnp64(parser->region, (yyvsp[-1].data).str));  /* NodeID */
 3511     }
 3512 #line 3513 "zparser.c"
 3513     break;
 3514 
 3515   case 238:
 3516 #line 1094 "zparser.y"
 3517     {
 3518         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str));  /* preference */
 3519         zadd_rdata_wireformat(zparser_conv_a(parser->region, (yyvsp[-1].data).str));  /* Locator32 */
 3520     }
 3521 #line 3522 "zparser.c"
 3522     break;
 3523 
 3524   case 239:
 3525 #line 1101 "zparser.y"
 3526     {
 3527         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str));  /* preference */
 3528         zadd_rdata_wireformat(zparser_conv_ilnp64(parser->region, (yyvsp[-1].data).str));  /* Locator64 */
 3529     }
 3530 #line 3531 "zparser.c"
 3531     break;
 3532 
 3533   case 240:
 3534 #line 1108 "zparser.y"
 3535     {
 3536         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str));  /* preference */
 3537         zadd_rdata_domain((yyvsp[-1].domain));  /* FQDN */
 3538     }
 3539 #line 3540 "zparser.c"
 3540     break;
 3541 
 3542   case 241:
 3543 #line 1115 "zparser.y"
 3544     {
 3545         zadd_rdata_wireformat(zparser_conv_eui(parser->region, (yyvsp[-1].data).str, 48));
 3546     }
 3547 #line 3548 "zparser.c"
 3548     break;
 3549 
 3550   case 242:
 3551 #line 1121 "zparser.y"
 3552     {
 3553         zadd_rdata_wireformat(zparser_conv_eui(parser->region, (yyvsp[-1].data).str, 64));
 3554     }
 3555 #line 3556 "zparser.c"
 3556     break;
 3557 
 3558   case 243:
 3559 #line 1128 "zparser.y"
 3560     {
 3561         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-5].data).str)); /* priority */
 3562         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-3].data).str)); /* weight */
 3563         zadd_rdata_wireformat(zparser_conv_long_text(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* target */
 3564     }
 3565 #line 3566 "zparser.c"
 3566     break;
 3567 
 3568   case 244:
 3569 #line 1137 "zparser.y"
 3570     {
 3571         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-5].data).str)); /* Flags */
 3572         zadd_rdata_wireformat(zparser_conv_tag(parser->region, (yyvsp[-3].data).str, (yyvsp[-3].data).len)); /* Tag */
 3573         zadd_rdata_wireformat(zparser_conv_long_text(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* Value */
 3574     }
 3575 #line 3576 "zparser.c"
 3576     break;
 3577 
 3578   case 245:
 3579 #line 1146 "zparser.y"
 3580     {
 3581         zadd_rdata_wireformat(zparser_conv_b64(parser->region, (yyvsp[-1].data).str));
 3582     }
 3583 #line 3584 "zparser.c"
 3584     break;
 3585 
 3586   case 246:
 3587 #line 1153 "zparser.y"
 3588     {
 3589         zadd_rdata_wireformat(zparser_conv_serial(parser->region, (yyvsp[-3].data).str));
 3590         zadd_rdata_wireformat(zparser_conv_short(parser->region, (yyvsp[-1].data).str));
 3591         zadd_rdata_wireformat(zparser_conv_nsec(parser->region, nsecbits)); /* nsec bitlist */
 3592         memset(nsecbits, 0, sizeof(nsecbits));
 3593             nsec_highest_rcode = 0;
 3594     }
 3595 #line 3596 "zparser.c"
 3596     break;
 3597 
 3598   case 247:
 3599 #line 1164 "zparser.y"
 3600     {
 3601         zadd_rdata_wireformat(zparser_conv_serial(parser->region, (yyvsp[-7].data).str)); /* serial */
 3602         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-5].data).str)); /* scheme */
 3603         zadd_rdata_wireformat(zparser_conv_byte(parser->region, (yyvsp[-3].data).str)); /* hash algorithm */
 3604         zadd_rdata_wireformat(zparser_conv_hex(parser->region, (yyvsp[-1].data).str, (yyvsp[-1].data).len)); /* digest */
 3605     }
 3606 #line 3607 "zparser.c"
 3607     break;
 3608 
 3609   case 248:
 3610 #line 1173 "zparser.y"
 3611     {
 3612         /* $2 is the number of octets, currently ignored */
 3613         (yyval.unknown) = zparser_conv_hex(parser->rr_region, (yyvsp[-1].data).str, (yyvsp[-1].data).len);
 3614 
 3615     }
 3616 #line 3617 "zparser.c"
 3617     break;
 3618 
 3619   case 249:
 3620 #line 1179 "zparser.y"
 3621     {
 3622         (yyval.unknown) = zparser_conv_hex(parser->rr_region, "", 0);
 3623     }
 3624 #line 3625 "zparser.c"
 3625     break;
 3626 
 3627   case 250:
 3628 #line 1183 "zparser.y"
 3629     {
 3630         (yyval.unknown) = zparser_conv_hex(parser->rr_region, "", 0);
 3631     }
 3632 #line 3633 "zparser.c"
 3633     break;
 3634 
 3635 
 3636 #line 3637 "zparser.c"
 3637 
 3638       default: break;
 3639     }
 3640   /* User semantic actions sometimes alter yychar, and that requires
 3641      that yytoken be updated with the new translation.  We take the
 3642      approach of translating immediately before every use of yytoken.
 3643      One alternative is translating here after every semantic action,
 3644      but that translation would be missed if the semantic action invokes
 3645      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
 3646      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
 3647      incorrect destructor might then be invoked immediately.  In the
 3648      case of YYERROR or YYBACKUP, subsequent parser