[PATCH] Regenerate with FreeBSD lex, yacc, and rpcgen tools.

Daniel Gutson daniel.gutson at tallertechnologies.com
Sun May 24 16:03:42 UTC 2015


I see things like "unsigned long" in some changes (specially macro
constants) rather than the stdint.h types. Please point me to the generator
tool location and I will contribute a patch to FreeBSD (meanwhile we could
use them).

> El 24/5/2015 0:19, "Chris Johns" <chrisj at rtems.org> escribió:
>>
>> Use the FreeBSD lex, yacc and rpcgen tools to generate the various
>> sources used in LibBSD. The change also removes an RTEMS specific change
>> added when using other hosts operating systems to generate the files.
>>
>> LibBSD should use FreeBSD version of the tools to generate the source
>> because the FreeBSD kernel is developed using them.
>>
>> The change is supported by the waf build which disables generating
>> the files unless enabled. I am not sure the effect with the Makefile
>> build support.
>> ---
>>  freebsd/include/rpc/rpcb_prot.h     |  173 +--
>>  freebsd/lib/libc/net/nslexer.c      |  270 ++--
>>  freebsd/lib/libc/net/nsparser.c     | 2228
++++++++-----------------------
>>  freebsd/lib/libipsec/policy_parse.c | 2490
++++++++++-------------------------
>>  freebsd/lib/libipsec/policy_token.c |  348 +++--
>>  freebsd/lib/libipsec/policy_token.l |    4 -
>>  6 files changed, 1619 insertions(+), 3894 deletions(-)
>>
>> diff --git a/freebsd/include/rpc/rpcb_prot.h
b/freebsd/include/rpc/rpcb_prot.h
>> index 0612bc5..914eb13 100644
>> --- a/freebsd/include/rpc/rpcb_prot.h
>> +++ b/freebsd/include/rpc/rpcb_prot.h
>> @@ -4,11 +4,10 @@
>>   */
>>
>>  #ifndef _RPCB_PROT_H_RPCGEN
>> -#define _RPCB_PROT_H_RPCGEN
>> +#define        _RPCB_PROT_H_RPCGEN
>>
>>  #include <rpc/rpc.h>
>>
>> -
>>  #ifdef __cplusplus
>>  extern "C" {
>>  #endif
>> @@ -275,14 +274,14 @@ typedef rpcb_entry_list *rpcb_entry_list_ptr;
>>   * rpcbind statistics
>>   */
>>
>> -#define rpcb_highproc_2 RPCBPROC_CALLIT
>> -#define rpcb_highproc_3 RPCBPROC_TADDR2UADDR
>> -#define rpcb_highproc_4 RPCBPROC_GETSTAT
>> -#define RPCBSTAT_HIGHPROC 13
>> -#define RPCBVERS_STAT 3
>> -#define RPCBVERS_4_STAT 2
>> -#define RPCBVERS_3_STAT 1
>> -#define RPCBVERS_2_STAT 0
>> +#define        rpcb_highproc_2 RPCBPROC_CALLIT
>> +#define        rpcb_highproc_3 RPCBPROC_TADDR2UADDR
>> +#define        rpcb_highproc_4 RPCBPROC_GETSTAT
>> +#define        RPCBSTAT_HIGHPROC 13
>> +#define        RPCBVERS_STAT 3
>> +#define        RPCBVERS_4_STAT 2
>> +#define        RPCBVERS_3_STAT 1
>> +#define        RPCBVERS_2_STAT 0
>>
>>  /* Link list of all the stats about getport and getaddr */
>>
>> @@ -490,66 +489,38 @@ typedef rpcb_stat rpcb_stat_byvers[RPCBVERS_STAT];
>>
>>  #endif /* ndef _KERNEL */
>>
>> -#define RPCBPROG 100000
>> -#define RPCBVERS 3
>> +#define        RPCBPROG ((unsigned long)(100000))
>> +#define        RPCBVERS ((unsigned long)(3))
>>
>> -#if defined(__STDC__) || defined(__cplusplus)
>> -#define RPCBPROC_SET 1
>> +extern  void rpcbprog_3(struct svc_req *rqstp, SVCXPRT *transp);
>> +#define        RPCBPROC_SET ((unsigned long)(1))
>>  extern  bool_t * rpcbproc_set_3(rpcb *, CLIENT *);
>>  extern  bool_t * rpcbproc_set_3_svc(rpcb *, struct svc_req *);
>> -#define RPCBPROC_UNSET 2
>> +#define        RPCBPROC_UNSET ((unsigned long)(2))
>>  extern  bool_t * rpcbproc_unset_3(rpcb *, CLIENT *);
>>  extern  bool_t * rpcbproc_unset_3_svc(rpcb *, struct svc_req *);
>> -#define RPCBPROC_GETADDR 3
>> +#define        RPCBPROC_GETADDR ((unsigned long)(3))
>>  extern  char ** rpcbproc_getaddr_3(rpcb *, CLIENT *);
>>  extern  char ** rpcbproc_getaddr_3_svc(rpcb *, struct svc_req *);
>> -#define RPCBPROC_DUMP 4
>> +#define        RPCBPROC_DUMP ((unsigned long)(4))
>>  extern  rpcblist_ptr * rpcbproc_dump_3(void *, CLIENT *);
>>  extern  rpcblist_ptr * rpcbproc_dump_3_svc(void *, struct svc_req *);
>> -#define RPCBPROC_CALLIT 5
>> +#define        RPCBPROC_CALLIT ((unsigned long)(5))
>>  extern  rpcb_rmtcallres * rpcbproc_callit_3(rpcb_rmtcallargs *, CLIENT
*);
>>  extern  rpcb_rmtcallres * rpcbproc_callit_3_svc(rpcb_rmtcallargs *,
struct svc_req *);
>> -#define RPCBPROC_GETTIME 6
>> +#define        RPCBPROC_GETTIME ((unsigned long)(6))
>>  extern  u_int * rpcbproc_gettime_3(void *, CLIENT *);
>>  extern  u_int * rpcbproc_gettime_3_svc(void *, struct svc_req *);
>> -#define RPCBPROC_UADDR2TADDR 7
>> +#define        RPCBPROC_UADDR2TADDR ((unsigned long)(7))
>>  extern  struct netbuf * rpcbproc_uaddr2taddr_3(char **, CLIENT *);
>>  extern  struct netbuf * rpcbproc_uaddr2taddr_3_svc(char **, struct
svc_req *);
>> -#define RPCBPROC_TADDR2UADDR 8
>> +#define        RPCBPROC_TADDR2UADDR ((unsigned long)(8))
>>  extern  char ** rpcbproc_taddr2uaddr_3(struct netbuf *, CLIENT *);
>>  extern  char ** rpcbproc_taddr2uaddr_3_svc(struct netbuf *, struct
svc_req *);
>> -extern int rpcbprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
>> -
>> -#else /* K&R C */
>> -#define RPCBPROC_SET 1
>> -extern  bool_t * rpcbproc_set_3();
>> -extern  bool_t * rpcbproc_set_3_svc();
>> -#define RPCBPROC_UNSET 2
>> -extern  bool_t * rpcbproc_unset_3();
>> -extern  bool_t * rpcbproc_unset_3_svc();
>> -#define RPCBPROC_GETADDR 3
>> -extern  char ** rpcbproc_getaddr_3();
>> -extern  char ** rpcbproc_getaddr_3_svc();
>> -#define RPCBPROC_DUMP 4
>> -extern  rpcblist_ptr * rpcbproc_dump_3();
>> -extern  rpcblist_ptr * rpcbproc_dump_3_svc();
>> -#define RPCBPROC_CALLIT 5
>> -extern  rpcb_rmtcallres * rpcbproc_callit_3();
>> -extern  rpcb_rmtcallres * rpcbproc_callit_3_svc();
>> -#define RPCBPROC_GETTIME 6
>> -extern  u_int * rpcbproc_gettime_3();
>> -extern  u_int * rpcbproc_gettime_3_svc();
>> -#define RPCBPROC_UADDR2TADDR 7
>> -extern  struct netbuf * rpcbproc_uaddr2taddr_3();
>> -extern  struct netbuf * rpcbproc_uaddr2taddr_3_svc();
>> -#define RPCBPROC_TADDR2UADDR 8
>> -extern  char ** rpcbproc_taddr2uaddr_3();
>> -extern  char ** rpcbproc_taddr2uaddr_3_svc();
>> -extern int rpcbprog_3_freeresult ();
>> -#endif /* K&R C */
>> -#define RPCBVERS4 4
>> -
>> -#if defined(__STDC__) || defined(__cplusplus)
>> +extern int rpcbprog_3_freeresult(SVCXPRT *, xdrproc_t, caddr_t);
>> +#define        RPCBVERS4 ((unsigned long)(4))
>> +
>> +extern  void rpcbprog_4(struct svc_req *rqstp, SVCXPRT *transp);
>>  extern  bool_t * rpcbproc_set_4(rpcb *, CLIENT *);
>>  extern  bool_t * rpcbproc_set_4_svc(rpcb *, struct svc_req *);
>>  extern  bool_t * rpcbproc_unset_4(rpcb *, CLIENT *);
>> @@ -558,7 +529,7 @@ extern  char ** rpcbproc_getaddr_4(rpcb *, CLIENT *);
>>  extern  char ** rpcbproc_getaddr_4_svc(rpcb *, struct svc_req *);
>>  extern  rpcblist_ptr * rpcbproc_dump_4(void *, CLIENT *);
>>  extern  rpcblist_ptr * rpcbproc_dump_4_svc(void *, struct svc_req *);
>> -#define RPCBPROC_BCAST RPCBPROC_CALLIT
>> +#define        RPCBPROC_BCAST ((unsigned long)(RPCBPROC_CALLIT))
>>  extern  rpcb_rmtcallres * rpcbproc_bcast_4(rpcb_rmtcallargs *, CLIENT
*);
>>  extern  rpcb_rmtcallres * rpcbproc_bcast_4_svc(rpcb_rmtcallargs *,
struct svc_req *);
>>  extern  u_int * rpcbproc_gettime_4(void *, CLIENT *);
>> @@ -567,90 +538,36 @@ extern  struct netbuf *
rpcbproc_uaddr2taddr_4(char **, CLIENT *);
>>  extern  struct netbuf * rpcbproc_uaddr2taddr_4_svc(char **, struct
svc_req *);
>>  extern  char ** rpcbproc_taddr2uaddr_4(struct netbuf *, CLIENT *);
>>  extern  char ** rpcbproc_taddr2uaddr_4_svc(struct netbuf *, struct
svc_req *);
>> -#define RPCBPROC_GETVERSADDR 9
>> +#define        RPCBPROC_GETVERSADDR ((unsigned long)(9))
>>  extern  char ** rpcbproc_getversaddr_4(rpcb *, CLIENT *);
>>  extern  char ** rpcbproc_getversaddr_4_svc(rpcb *, struct svc_req *);
>> -#define RPCBPROC_INDIRECT 10
>> +#define        RPCBPROC_INDIRECT ((unsigned long)(10))
>>  extern  rpcb_rmtcallres * rpcbproc_indirect_4(rpcb_rmtcallargs *,
CLIENT *);
>>  extern  rpcb_rmtcallres * rpcbproc_indirect_4_svc(rpcb_rmtcallargs *,
struct svc_req *);
>> -#define RPCBPROC_GETADDRLIST 11
>> +#define        RPCBPROC_GETADDRLIST ((unsigned long)(11))
>>  extern  rpcb_entry_list_ptr * rpcbproc_getaddrlist_4(rpcb *, CLIENT *);
>>  extern  rpcb_entry_list_ptr * rpcbproc_getaddrlist_4_svc(rpcb *, struct
svc_req *);
>> -#define RPCBPROC_GETSTAT 12
>> +#define        RPCBPROC_GETSTAT ((unsigned long)(12))
>>  extern  rpcb_stat * rpcbproc_getstat_4(void *, CLIENT *);
>>  extern  rpcb_stat * rpcbproc_getstat_4_svc(void *, struct svc_req *);
>> -extern int rpcbprog_4_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
>> -
>> -#else /* K&R C */
>> -extern  bool_t * rpcbproc_set_4();
>> -extern  bool_t * rpcbproc_set_4_svc();
>> -extern  bool_t * rpcbproc_unset_4();
>> -extern  bool_t * rpcbproc_unset_4_svc();
>> -extern  char ** rpcbproc_getaddr_4();
>> -extern  char ** rpcbproc_getaddr_4_svc();
>> -extern  rpcblist_ptr * rpcbproc_dump_4();
>> -extern  rpcblist_ptr * rpcbproc_dump_4_svc();
>> -#define RPCBPROC_BCAST RPCBPROC_CALLIT
>> -extern  rpcb_rmtcallres * rpcbproc_bcast_4();
>> -extern  rpcb_rmtcallres * rpcbproc_bcast_4_svc();
>> -extern  u_int * rpcbproc_gettime_4();
>> -extern  u_int * rpcbproc_gettime_4_svc();
>> -extern  struct netbuf * rpcbproc_uaddr2taddr_4();
>> -extern  struct netbuf * rpcbproc_uaddr2taddr_4_svc();
>> -extern  char ** rpcbproc_taddr2uaddr_4();
>> -extern  char ** rpcbproc_taddr2uaddr_4_svc();
>> -#define RPCBPROC_GETVERSADDR 9
>> -extern  char ** rpcbproc_getversaddr_4();
>> -extern  char ** rpcbproc_getversaddr_4_svc();
>> -#define RPCBPROC_INDIRECT 10
>> -extern  rpcb_rmtcallres * rpcbproc_indirect_4();
>> -extern  rpcb_rmtcallres * rpcbproc_indirect_4_svc();
>> -#define RPCBPROC_GETADDRLIST 11
>> -extern  rpcb_entry_list_ptr * rpcbproc_getaddrlist_4();
>> -extern  rpcb_entry_list_ptr * rpcbproc_getaddrlist_4_svc();
>> -#define RPCBPROC_GETSTAT 12
>> -extern  rpcb_stat * rpcbproc_getstat_4();
>> -extern  rpcb_stat * rpcbproc_getstat_4_svc();
>> -extern int rpcbprog_4_freeresult ();
>> -#endif /* K&R C */
>> +extern int rpcbprog_4_freeresult(SVCXPRT *, xdrproc_t, caddr_t);
>>
>>  /* the xdr functions */
>> -
>> -#if defined(__STDC__) || defined(__cplusplus)
>> -extern  bool_t xdr_rpcb (XDR *, rpcb*);
>> -extern  bool_t xdr_rp__list (XDR *, rp__list*);
>> -extern  bool_t xdr_rpcblist_ptr (XDR *, rpcblist_ptr*);
>> -extern  bool_t xdr_rpcb_rmtcallargs (XDR *, rpcb_rmtcallargs*);
>> -extern  bool_t xdr_rpcb_rmtcallres (XDR *, rpcb_rmtcallres*);
>> -extern  bool_t xdr_rpcb_entry (XDR *, rpcb_entry*);
>> -extern  bool_t xdr_rpcb_entry_list (XDR *, rpcb_entry_list*);
>> -extern  bool_t xdr_rpcb_entry_list_ptr (XDR *, rpcb_entry_list_ptr*);
>> -extern  bool_t xdr_rpcbs_addrlist (XDR *, rpcbs_addrlist*);
>> -extern  bool_t xdr_rpcbs_rmtcalllist (XDR *, rpcbs_rmtcalllist*);
>> -extern  bool_t xdr_rpcbs_proc (XDR *, rpcbs_proc);
>> -extern  bool_t xdr_rpcbs_addrlist_ptr (XDR *, rpcbs_addrlist_ptr*);
>> -extern  bool_t xdr_rpcbs_rmtcalllist_ptr (XDR *,
rpcbs_rmtcalllist_ptr*);
>> -extern  bool_t xdr_rpcb_stat (XDR *, rpcb_stat*);
>> -extern  bool_t xdr_rpcb_stat_byvers (XDR *, rpcb_stat_byvers);
>> -
>> -#else /* K&R C */
>> -extern bool_t xdr_rpcb ();
>> -extern bool_t xdr_rp__list ();
>> -extern bool_t xdr_rpcblist_ptr ();
>> -extern bool_t xdr_rpcb_rmtcallargs ();
>> -extern bool_t xdr_rpcb_rmtcallres ();
>> -extern bool_t xdr_rpcb_entry ();
>> -extern bool_t xdr_rpcb_entry_list ();
>> -extern bool_t xdr_rpcb_entry_list_ptr ();
>> -extern bool_t xdr_rpcbs_addrlist ();
>> -extern bool_t xdr_rpcbs_rmtcalllist ();
>> -extern bool_t xdr_rpcbs_proc ();
>> -extern bool_t xdr_rpcbs_addrlist_ptr ();
>> -extern bool_t xdr_rpcbs_rmtcalllist_ptr ();
>> -extern bool_t xdr_rpcb_stat ();
>> -extern bool_t xdr_rpcb_stat_byvers ();
>> -
>> -#endif /* K&R C */
>> +extern  bool_t xdr_rpcb(XDR *, rpcb*);
>> +extern  bool_t xdr_rp__list(XDR *, rp__list*);
>> +extern  bool_t xdr_rpcblist_ptr(XDR *, rpcblist_ptr*);
>> +extern  bool_t xdr_rpcb_rmtcallargs(XDR *, rpcb_rmtcallargs*);
>> +extern  bool_t xdr_rpcb_rmtcallres(XDR *, rpcb_rmtcallres*);
>> +extern  bool_t xdr_rpcb_entry(XDR *, rpcb_entry*);
>> +extern  bool_t xdr_rpcb_entry_list(XDR *, rpcb_entry_list*);
>> +extern  bool_t xdr_rpcb_entry_list_ptr(XDR *, rpcb_entry_list_ptr*);
>> +extern  bool_t xdr_rpcbs_addrlist(XDR *, rpcbs_addrlist*);
>> +extern  bool_t xdr_rpcbs_rmtcalllist(XDR *, rpcbs_rmtcalllist*);
>> +extern  bool_t xdr_rpcbs_proc(XDR *, rpcbs_proc);
>> +extern  bool_t xdr_rpcbs_addrlist_ptr(XDR *, rpcbs_addrlist_ptr*);
>> +extern  bool_t xdr_rpcbs_rmtcalllist_ptr(XDR *, rpcbs_rmtcalllist_ptr*);
>> +extern  bool_t xdr_rpcb_stat(XDR *, rpcb_stat*);
>> +extern  bool_t xdr_rpcb_stat_byvers(XDR *, rpcb_stat_byvers);
>>
>>  #ifdef __cplusplus
>>  }
>> diff --git a/freebsd/lib/libc/net/nslexer.c
b/freebsd/lib/libc/net/nslexer.c
>> index b926d21..3c8c1c1 100644
>> --- a/freebsd/lib/libc/net/nslexer.c
>> +++ b/freebsd/lib/libc/net/nslexer.c
>> @@ -34,6 +34,16 @@
>>
>>  /* First, we deal with  platform-specific or compiler-specific issues.
*/
>>
>> +#if defined(__FreeBSD__)
>> +#ifndef __STDC_LIMIT_MACROS
>> +#define        __STDC_LIMIT_MACROS
>> +#endif
>> +#include <sys/cdefs.h>
>> +#include <stdint.h>
>> +#else
>> +#define        __dead2
>> +#endif
>> +
>>  /* begin standard C headers. */
>>  #include <stdio.h>
>>  #include <string.h>
>> @@ -49,7 +59,8 @@
>>
>>  /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
>>
>> -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
>> +#if defined(__FreeBSD__) || \
>> +    (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
>>
>>  /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
>>   * if you want the limit (max/min) macros for int types.
>> @@ -295,6 +306,7 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**<
Stack as an array. */
>>  #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
>>                            ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
>>                            : NULL)
>> +#define yy_current_buffer YY_CURRENT_BUFFER
>>
>>  /* Same as previous macro, but useful when we know that the buffer
stack is not
>>   * NULL or when we need an lvalue. For internal use only.
>> @@ -370,17 +382,17 @@ FILE *_nsyyin = (FILE *) 0, *_nsyyout = (FILE *) 0;
>>
>>  typedef int yy_state_type;
>>
>> -#define YY_FLEX_LEX_COMPAT
>>  extern int _nsyylineno;
>>
>>  int _nsyylineno = 1;
>>
>> -extern char _nsyytext[];
>> +extern char *_nsyytext;
>> +#define yytext_ptr _nsyytext
>>
>>  static yy_state_type yy_get_previous_state (void );
>>  static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
>>  static int yy_get_next_buffer (void );
>> -static void yy_fatal_error (yyconst char msg[]  );
>> +static void yy_fatal_error (yyconst char msg[]  ) __dead2;
>>
>>  /* Done after the current pattern has been matched and before the
>>   * corresponding action - sets up _nsyytext.
>> @@ -390,12 +402,6 @@ static void yy_fatal_error (yyconst char msg[]  );
>>         _nsyyleng = (size_t) (yy_cp - yy_bp); \
>>         (yy_hold_char) = *yy_cp; \
>>         *yy_cp = '\0'; \
>> -       if ( _nsyyleng + (yy_more_offset) >= YYLMAX ) \
>> -               YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
>> -       yy_flex_strncpy( &_nsyytext[(yy_more_offset)], (yytext_ptr),
_nsyyleng + 1 ); \
>> -       _nsyyleng += (yy_more_offset); \
>> -       (yy_prev_more_offset) = (yy_more_offset); \
>> -       (yy_more_offset) = 0; \
>>         (yy_c_buf_p) = yy_cp;
>>
>>  #define YY_NUM_RULES 13
>> @@ -407,27 +413,14 @@ struct yy_trans_info
>>         flex_int32_t yy_verify;
>>         flex_int32_t yy_nxt;
>>         };
>> -static yyconst flex_int16_t yy_acclist[83] =
>> +static yyconst flex_int16_t yy_accept[59] =
>>      {   0,
>> -       14,   12,   13,    1,   12,   13,    4,   13,    2,   12,
>> -       13,   11,   12,   13,   11,   12,   13,   11,   12,   13,
>> -       11,   12,   13,   11,   12,   13,   11,   12,   13,   11,
>> -       12,   13,   12,   13,    1,    2,   11,   11,   11,   11,
>> -       11,   11,   11,    3,   11,   11,   11,   11,   11,   11,
>> +        0,    0,   14,   12,    1,    4,    2,   11,   11,   11,
>> +       11,   11,   11,   11,   12,    1,    2,   11,   11,   11,
>> +       11,   11,   11,   11,    3,   11,   11,   11,   11,   11,
>>         11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
>> -       11,   11,   11,   11,    9,   11,   11,   11,   11,   11,
>> -       11,    5,   11,   11,    6,   11,   10,   11,    7,   11,
>> -        8,   11
>> -    } ;
>> -
>> -static yyconst flex_int16_t yy_accept[60] =
>> -    {   0,
>> -        1,    1,    1,    2,    4,    7,    9,   12,   15,   18,
>> -       21,   24,   27,   30,   33,   35,   36,   37,   38,   39,
>> -       40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
>> -       50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
>> -       60,   61,   62,   63,   64,   65,   67,   68,   69,   70,
>> -       71,   72,   74,   75,   77,   79,   81,   83,   83
>> +       11,   11,   11,   11,   11,    9,   11,   11,   11,   11,
>> +       11,    5,   11,    6,   10,    7,    8,    0
>>      } ;
>>
>>  static yyconst flex_int32_t yy_ec[256] =
>> @@ -524,38 +517,22 @@ static yyconst flex_int32_t
yy_rule_can_match_eol[14] =
>>      {   0,
>>  0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
>>
>> +static yy_state_type yy_last_accepting_state;
>> +static char *yy_last_accepting_cpos;
>> +
>>  extern int _nsyy_flex_debug;
>>  int _nsyy_flex_debug = 0;
>>
>> -static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
>> -static char *yy_full_match;
>> -static int yy_lp;
>> -#define REJECT \
>> -{ \
>> -*yy_cp = (yy_hold_char); /* undo effects of setting up _nsyytext */ \
>> -yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
>> -++(yy_lp); \
>> -goto find_rule; \
>> -}
>> -
>> -static int yy_more_offset = 0;
>> -static int yy_prev_more_offset = 0;
>> -#define yymore() ((yy_more_offset) = yy_flex_strlen( _nsyytext ))
>> -#define YY_NEED_STRLEN
>> +/* The intent behind this definition is that it'll catch
>> + * any uses of REJECT which flex missed.
>> + */
>> +#define REJECT reject_used_but_not_detected
>> +#define yymore() yymore_used_but_not_detected
>>  #define YY_MORE_ADJ 0
>> -#define YY_RESTORE_YY_MORE_OFFSET \
>> -       { \
>> -       (yy_more_offset) = (yy_prev_more_offset); \
>> -       _nsyyleng -= (yy_more_offset); \
>> -       }
>> -#ifndef YYLMAX
>> -#define YYLMAX 8192
>> -#endif
>> -
>> -char _nsyytext[YYLMAX];
>> -char *yytext_ptr;
>> -#line 1 "freebsd/lib/libc/net/nslexer.l"
>> -#line 2 "freebsd/lib/libc/net/nslexer.l"
>> +#define YY_RESTORE_YY_MORE_OFFSET
>> +char *_nsyytext;
>> +#line 1 "../../freebsd/lib/libc/net/nslexer.l"
>> +#line 2 "../../freebsd/lib/libc/net/nslexer.l"
>>  /*     $NetBSD: nslexer.l,v 1.3 1999/01/25 00:16:17 lukem Exp $
*/
>>
>>  /*-
>> @@ -611,7 +588,7 @@ static char *rcsid =
>>  #include "nsparser.h"
>>
>>  #define YY_NO_INPUT 1
>> -#line 615 "<stdout>"
>> +#line 592 "<stdout>"
>>
>>  #define INITIAL 0
>>
>> @@ -787,14 +764,14 @@ extern int _nsyylex (void);
>>   */
>>  YY_DECL
>>  {
>> -       register yy_state_type yy_current_state;
>> -       register char *yy_cp, *yy_bp;
>> -       register int yy_act;
>> +       yy_state_type yy_current_state;
>> +       char *yy_cp, *yy_bp;
>> +       int yy_act;
>>
>> -#line 66 "freebsd/lib/libc/net/nslexer.l"
>> +#line 66 "../../freebsd/lib/libc/net/nslexer.l"
>>
>>
>> -#line 798 "<stdout>"
>> +#line 775 "<stdout>"
>>
>>         if ( !(yy_init) )
>>                 {
>> @@ -804,12 +781,6 @@ YY_DECL
>>                 YY_USER_INIT;
>>  #endif
>>
>> -        /* Create the reject buffer large enough to save one state per
allowed character. */
>> -        if ( ! (yy_state_buf) )
>> -            (yy_state_buf) = (yy_state_type
*)_nsyyalloc(YY_STATE_BUF_SIZE  );
>> -            if ( ! (yy_state_buf) )
>> -                YY_FATAL_ERROR( "out of dynamic memory in _nsyylex()" );
>> -
>>                 if ( ! (yy_start) )
>>                         (yy_start) = 1; /* first start state */
>>
>> @@ -841,14 +812,15 @@ YY_DECL
>>                 yy_bp = yy_cp;
>>
>>                 yy_current_state = (yy_start);
>> -
>> -               (yy_state_ptr) = (yy_state_buf);
>> -               *(yy_state_ptr)++ = yy_current_state;
>> -
>>  yy_match:
>>                 do
>>                         {
>> -                       register YY_CHAR yy_c =
yy_ec[YY_SC_TO_UI(*yy_cp)];
>> +                       YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
>> +                       if ( yy_accept[yy_current_state] )
>> +                               {
>> +                               (yy_last_accepting_state) =
yy_current_state;
>> +                               (yy_last_accepting_cpos) = yy_cp;
>> +                               }
>>                         while ( yy_chk[yy_base[yy_current_state] + yy_c]
!= yy_current_state )
>>                                 {
>>                                 yy_current_state = (int)
yy_def[yy_current_state];
>> @@ -856,36 +828,25 @@ yy_match:
>>                                         yy_c = yy_meta[(unsigned int)
yy_c];
>>                                 }
>>                         yy_current_state =
yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
>> -                       *(yy_state_ptr)++ = yy_current_state;
>>                         ++yy_cp;
>>                         }
>>                 while ( yy_base[yy_current_state] != 69 );
>>
>>  yy_find_action:
>> -               yy_current_state = *--(yy_state_ptr);
>> -               (yy_lp) = yy_accept[yy_current_state];
>> -find_rule: /* we branch to this label when backing up */
>> -               for ( ; ; ) /* until we find what rule we matched */
>> -                       {
>> -                       if ( (yy_lp) && (yy_lp) <
yy_accept[yy_current_state + 1] )
>> -                               {
>> -                               yy_act = yy_acclist[(yy_lp)];
>> -                                       {
>> -                                       (yy_full_match) = yy_cp;
>> -                                       break;
>> -                                       }
>> -                               }
>> -                       --yy_cp;
>> -                       yy_current_state = *--(yy_state_ptr);
>> -                       (yy_lp) = yy_accept[yy_current_state];
>> +               yy_act = yy_accept[yy_current_state];
>> +               if ( yy_act == 0 )
>> +                       { /* have to back up */
>> +                       yy_cp = (yy_last_accepting_cpos);
>> +                       yy_current_state = (yy_last_accepting_state);
>> +                       yy_act = yy_accept[yy_current_state];
>>                         }
>>
>>                 YY_DO_BEFORE_ACTION;
>>
>>                 if ( yy_act != YY_END_OF_BUFFER &&
yy_rule_can_match_eol[yy_act] )
>>                         {
>> -                       int yyl;
>> -                       for ( yyl = (yy_prev_more_offset); yyl <
_nsyyleng; ++yyl )
>> +                       yy_size_t yyl;
>> +                       for ( yyl = 0; yyl < _nsyyleng; ++yyl )
>>                                 if ( _nsyytext[yyl] == '\n' )
>>
>>      _nsyylineno++;
>> @@ -896,61 +857,68 @@ do_action:        /* This label is used only to
access EOF actions. */
>>
>>                 switch ( yy_act )
>>         { /* beginning of action switch */
>> +                       case 0: /* must back up */
>> +                       /* undo the effects of YY_DO_BEFORE_ACTION */
>> +                       *yy_cp = (yy_hold_char);
>> +                       yy_cp = (yy_last_accepting_cpos);
>> +                       yy_current_state = (yy_last_accepting_state);
>> +                       goto yy_find_action;
>> +
>>  case 1:
>>  YY_RULE_SETUP
>> -#line 68 "freebsd/lib/libc/net/nslexer.l"
>> +#line 68 "../../freebsd/lib/libc/net/nslexer.l"
>>  ;                      /* skip whitespace */
>>         YY_BREAK
>>  case 2:
>>  YY_RULE_SETUP
>> -#line 70 "freebsd/lib/libc/net/nslexer.l"
>> +#line 70 "../../freebsd/lib/libc/net/nslexer.l"
>>  ;                      /* skip comments */
>>         YY_BREAK
>>  case 3:
>>  /* rule 3 can match eol */
>>  YY_RULE_SETUP
>> -#line 72 "freebsd/lib/libc/net/nslexer.l"
>> +#line 72 "../../freebsd/lib/libc/net/nslexer.l"
>>  ;                      /* allow continuation */
>>         YY_BREAK
>>  case 4:
>>  /* rule 4 can match eol */
>>  YY_RULE_SETUP
>> -#line 74 "freebsd/lib/libc/net/nslexer.l"
>> +#line 74 "../../freebsd/lib/libc/net/nslexer.l"
>>  return NL;
>>         YY_BREAK
>>  case 5:
>>  YY_RULE_SETUP
>> -#line 76 "freebsd/lib/libc/net/nslexer.l"
>> +#line 76 "../../freebsd/lib/libc/net/nslexer.l"
>>  return SUCCESS;
>>         YY_BREAK
>>  case 6:
>>  YY_RULE_SETUP
>> -#line 77 "freebsd/lib/libc/net/nslexer.l"
>> +#line 77 "../../freebsd/lib/libc/net/nslexer.l"
>>  return UNAVAIL;
>>         YY_BREAK
>>  case 7:
>>  YY_RULE_SETUP
>> -#line 78 "freebsd/lib/libc/net/nslexer.l"
>> +#line 78 "../../freebsd/lib/libc/net/nslexer.l"
>>  return NOTFOUND;
>>         YY_BREAK
>>  case 8:
>>  YY_RULE_SETUP
>> -#line 79 "freebsd/lib/libc/net/nslexer.l"
>> +#line 79 "../../freebsd/lib/libc/net/nslexer.l"
>>  return TRYAGAIN;
>>         YY_BREAK
>>  case 9:
>>  YY_RULE_SETUP
>> -#line 81 "freebsd/lib/libc/net/nslexer.l"
>> +#line 81 "../../freebsd/lib/libc/net/nslexer.l"
>>  return RETURN;
>>         YY_BREAK
>>  case 10:
>>  YY_RULE_SETUP
>> -#line 82 "freebsd/lib/libc/net/nslexer.l"
>> +#line 82 "../../freebsd/lib/libc/net/nslexer.l"
>>  return CONTINUE;
>>         YY_BREAK
>>  case 11:
>>  YY_RULE_SETUP
>> -#line 84 "freebsd/lib/libc/net/nslexer.l"
>> +#line 84 "../../freebsd/lib/libc/net/nslexer.l"
>>  {
>>                         char *p;
>>                         int i;
>> @@ -970,17 +938,17 @@ YY_RULE_SETUP
>>         YY_BREAK
>>  case 12:
>>  YY_RULE_SETUP
>> -#line 101 "freebsd/lib/libc/net/nslexer.l"
>> +#line 101 "../../freebsd/lib/libc/net/nslexer.l"
>>  return _nsyytext[0];
>>         YY_BREAK
>>  case 13:
>>  YY_RULE_SETUP
>> -#line 103 "freebsd/lib/libc/net/nslexer.l"
>> +#line 103 "../../freebsd/lib/libc/net/nslexer.l"
>>  ECHO;
>>         YY_BREAK
>> -#line 982 "<stdout>"
>> -                       case YY_STATE_EOF(INITIAL):
>> -                               yyterminate();
>> +#line 950 "<stdout>"
>> +case YY_STATE_EOF(INITIAL):
>> +       yyterminate();
>>
>>         case YY_END_OF_BUFFER:
>>                 {
>> @@ -1120,9 +1088,9 @@ ECHO;
>>   */
>>  static int yy_get_next_buffer (void)
>>  {
>> -       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
>> -       register char *source = (yytext_ptr);
>> -       register int number_to_move, i;
>> +       char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
>> +       char *source = (yytext_ptr);
>> +       int number_to_move, i;
>>         int ret_val;
>>
>>         if ( (yy_c_buf_p) >
&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
>> @@ -1170,8 +1138,37 @@ static int yy_get_next_buffer (void)
>>                 while ( num_to_read <= 0 )
>>                         { /* Not enough room in the buffer - grow it. */
>>
>> -                       YY_FATAL_ERROR(
>> -"input buffer overflow, can't enlarge buffer because scanner uses
REJECT" );
>> +                       /* just a shorter name for the current buffer */
>> +                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
>> +
>> +                       int yy_c_buf_p_offset =
>> +                               (int) ((yy_c_buf_p) - b->yy_ch_buf);
>> +
>> +                       if ( b->yy_is_our_buffer )
>> +                               {
>> +                               yy_size_t new_size = b->yy_buf_size * 2;
>> +
>> +                               if ( new_size <= 0 )
>> +                                       b->yy_buf_size += b->yy_buf_size
/ 8;
>> +                               else
>> +                                       b->yy_buf_size *= 2;
>> +
>> +                               b->yy_ch_buf = (char *)
>> +                                       /* Include room in for 2 EOB
chars. */
>> +                                       _nsyyrealloc((void *)
b->yy_ch_buf,b->yy_buf_size + 2  );
>> +                               }
>> +                       else
>> +                               /* Can't grow it, we don't own it. */
>> +                               b->yy_ch_buf = 0;
>> +
>> +                       if ( ! b->yy_ch_buf )
>> +                               YY_FATAL_ERROR(
>> +                               "fatal error - scanner input buffer
overflow" );
>> +
>> +                       (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
>> +
>> +                       num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
>> +                                               number_to_move - 1;
>>
>>                         }
>>
>> @@ -1225,17 +1222,19 @@ static int yy_get_next_buffer (void)
>>
>>      static yy_state_type yy_get_previous_state (void)
>>  {
>> -       register yy_state_type yy_current_state;
>> -       register char *yy_cp;
>> +       yy_state_type yy_current_state;
>> +       char *yy_cp;
>>
>>         yy_current_state = (yy_start);
>>
>> -       (yy_state_ptr) = (yy_state_buf);
>> -       *(yy_state_ptr)++ = yy_current_state;
>> -
>>         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p);
++yy_cp )
>>                 {
>> -               register YY_CHAR yy_c = (*yy_cp ?
yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
>> +               YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
>> +               if ( yy_accept[yy_current_state] )
>> +                       {
>> +                       (yy_last_accepting_state) = yy_current_state;
>> +                       (yy_last_accepting_cpos) = yy_cp;
>> +                       }
>>                 while ( yy_chk[yy_base[yy_current_state] + yy_c] !=
yy_current_state )
>>                         {
>>                         yy_current_state = (int)
yy_def[yy_current_state];
>> @@ -1243,7 +1242,6 @@ static int yy_get_next_buffer (void)
>>                                 yy_c = yy_meta[(unsigned int) yy_c];
>>                         }
>>                 yy_current_state = yy_nxt[yy_base[yy_current_state] +
(unsigned int) yy_c];
>> -               *(yy_state_ptr)++ = yy_current_state;
>>                 }
>>
>>         return yy_current_state;
>> @@ -1256,9 +1254,15 @@ static int yy_get_next_buffer (void)
>>   */
>>      static yy_state_type yy_try_NUL_trans  (yy_state_type
yy_current_state )
>>  {
>> -       register int yy_is_jam;
>> -
>> -       register YY_CHAR yy_c = 1;
>> +       int yy_is_jam;
>> +       char *yy_cp = (yy_c_buf_p);
>> +
>> +       YY_CHAR yy_c = 1;
>> +       if ( yy_accept[yy_current_state] )
>> +               {
>> +               (yy_last_accepting_state) = yy_current_state;
>> +               (yy_last_accepting_cpos) = yy_cp;
>> +               }
>>         while ( yy_chk[yy_base[yy_current_state] + yy_c] !=
yy_current_state )
>>                 {
>>                 yy_current_state = (int) yy_def[yy_current_state];
>> @@ -1267,8 +1271,6 @@ static int yy_get_next_buffer (void)
>>                 }
>>         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned
int) yy_c];
>>         yy_is_jam = (yy_current_state == 58);
>> -       if ( ! yy_is_jam )
>> -               *(yy_state_ptr)++ = yy_current_state;
>>
>>                 return yy_is_jam ? 0 : yy_current_state;
>>  }
>> @@ -1676,7 +1678,7 @@ YY_BUFFER_STATE _nsyy_scan_bytes  (yyconst char *
yybytes, yy_size_t  _yybytes_l
>>         YY_BUFFER_STATE b;
>>         char *buf;
>>         yy_size_t n;
>> -       int i;
>> +       yy_size_t i;
>>
>>         /* Get memory for full buffer, including space for trailing
EOB's. */
>>         n = _yybytes_len + 2;
>> @@ -1824,11 +1826,6 @@ static int yy_init_globals (void)
>>      (yy_init) = 0;
>>      (yy_start) = 0;
>>
>> -    (yy_state_buf) = 0;
>> -    (yy_state_ptr) = 0;
>> -    (yy_full_match) = 0;
>> -    (yy_lp) = 0;
>> -
>>  /* Defined in main.c */
>>  #ifdef YY_STDINIT
>>      _nsyyin = stdin;
>> @@ -1859,9 +1856,6 @@ int _nsyylex_destroy  (void)
>>         _nsyyfree((yy_buffer_stack) );
>>         (yy_buffer_stack) = NULL;
>>
>> -    _nsyyfree ( (yy_state_buf) );
>> -    (yy_state_buf)  = NULL;
>> -
>>      /* Reset the globals. This is important in a non-reentrant scanner
so the next time
>>       * _nsyylex() is called, initialization will occur. */
>>      yy_init_globals( );
>> @@ -1876,7 +1870,7 @@ int _nsyylex_destroy  (void)
>>  #ifndef yytext_ptr
>>  static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
>>  {
>> -       register int i;
>> +       int i;
>>         for ( i = 0; i < n; ++i )
>>                 s1[i] = s2[i];
>>  }
>> @@ -1885,7 +1879,7 @@ static void yy_flex_strncpy (char* s1, yyconst
char * s2, int n )
>>  #ifdef YY_NEED_STRLEN
>>  static int yy_flex_strlen (yyconst char * s )
>>  {
>> -       register int n;
>> +       int n;
>>         for ( n = 0; s[n]; ++n )
>>                 ;
>>
>> @@ -1917,7 +1911,7 @@ void _nsyyfree (void * ptr )
>>
>>  #define YYTABLES_NAME "yytables"
>>
>> -#line 103 "freebsd/lib/libc/net/nslexer.l"
>> +#line 103 "../../freebsd/lib/libc/net/nslexer.l"
>>
>>
>>
>> diff --git a/freebsd/lib/libc/net/nsparser.c
b/freebsd/lib/libc/net/nsparser.c
>> index ff705bd..f2fca01 100644
>> --- a/freebsd/lib/libc/net/nsparser.c
>> +++ b/freebsd/lib/libc/net/nsparser.c
>> @@ -1,77 +1,102 @@
>> -/* A Bison parser, made by GNU Bison 2.7.  */
>> -
>> -/* Bison implementation for Yacc-like parsers in C
>> -
>> -      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software
Foundation, Inc.
>> -
>> -   This program is free software: you can redistribute it and/or modify
>> -   it under the terms of the GNU General Public License as published by
>> -   the Free Software Foundation, either version 3 of the License, or
>> -   (at your option) any later version.
>> -
>> -   This program is distributed in the hope that it will be useful,
>> -   but WITHOUT ANY WARRANTY; without even the implied warranty of
>> -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> -   GNU General Public License for more details.
>> -
>> -   You should have received a copy of the GNU General Public License
>> -   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
>> -
>> -/* As a special exception, you may create a larger work that contains
>> -   part or all of the Bison parser skeleton and distribute that work
>> -   under terms of your choice, so long as that work isn't itself a
>> -   parser generator using the skeleton or a modified version thereof
>> -   as a parser skeleton.  Alternatively, if you modify or redistribute
>> -   the parser skeleton itself, you may (at your option) remove this
>> -   special exception, which will cause the skeleton and the resulting
>> -   Bison output files to be licensed under the GNU General Public
>> -   License without this special exception.
>> -
>> -   This special exception was added by the Free Software Foundation in
>> -   version 2.2 of Bison.  */
>> -
>> -/* C LALR(1) parser skeleton written by Richard Stallman, by
>> -   simplifying the original so-called "semantic" parser.  */
>> -
>> -/* All symbols defined below should begin with yy or YY, to avoid
>> -   infringing on user name space.  This should be done even for local
>> -   variables, as they might otherwise be expanded by user macros.
>> -   There are some unavoidable exceptions within include files to
>> -   define necessary library symbols; they are noted "INFRINGES ON
>> -   USER NAME SPACE" below.  */
>> -
>> -/* Identify Bison output.  */
>> -#define YYBISON 1
>> -
>> -/* Bison version.  */
>> -#define YYBISON_VERSION "2.7"
>> -
>> -/* Skeleton name.  */
>> -#define YYSKELETON_NAME "yacc.c"
>> -
>> -/* Pure parsers.  */
>> -#define YYPURE 0
>> -
>> -/* Push parsers.  */
>> -#define YYPUSH 0
>> -
>> -/* Pull parsers.  */
>> -#define YYPULL 1
>> -
>> +/* original parser id follows */
>> +/* yysccsid[] = "@(#)yaccpar   1.9 (Berkeley) 02/21/93" */
>> +/* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */
>> +
>> +#define YYBYACC 1
>> +#define YYMAJOR 1
>> +#define YYMINOR 9
>> +
>> +#define YYEMPTY        (-1)
>> +#define yyclearin      (yychar = YYEMPTY)
>> +#define yyerrok        (yyerrflag = 0)
>> +#define YYRECOVERING() (yyerrflag != 0)
>> +#define YYENOMEM       (-2)
>> +#define YYEOF          0
>> +
>> +#ifndef yyparse
>> +#define yyparse    _nsyyparse
>> +#endif /* yyparse */
>> +
>> +#ifndef yylex
>> +#define yylex      _nsyylex
>> +#endif /* yylex */
>> +
>> +#ifndef yyerror
>> +#define yyerror    _nsyyerror
>> +#endif /* yyerror */
>> +
>> +#ifndef yychar
>> +#define yychar     _nsyychar
>> +#endif /* yychar */
>> +
>> +#ifndef yyval
>> +#define yyval      _nsyyval
>> +#endif /* yyval */
>> +
>> +#ifndef yylval
>> +#define yylval     _nsyylval
>> +#endif /* yylval */
>> +
>> +#ifndef yydebug
>> +#define yydebug    _nsyydebug
>> +#endif /* yydebug */
>> +
>> +#ifndef yynerrs
>> +#define yynerrs    _nsyynerrs
>> +#endif /* yynerrs */
>> +
>> +#ifndef yyerrflag
>> +#define yyerrflag  _nsyyerrflag
>> +#endif /* yyerrflag */
>> +
>> +#ifndef yylhs
>> +#define yylhs      _nsyylhs
>> +#endif /* yylhs */
>> +
>> +#ifndef yylen
>> +#define yylen      _nsyylen
>> +#endif /* yylen */
>> +
>> +#ifndef yydefred
>> +#define yydefred   _nsyydefred
>> +#endif /* yydefred */
>> +
>> +#ifndef yydgoto
>> +#define yydgoto    _nsyydgoto
>> +#endif /* yydgoto */
>> +
>> +#ifndef yysindex
>> +#define yysindex   _nsyysindex
>> +#endif /* yysindex */
>> +
>> +#ifndef yyrindex
>> +#define yyrindex   _nsyyrindex
>> +#endif /* yyrindex */
>> +
>> +#ifndef yygindex
>> +#define yygindex   _nsyygindex
>> +#endif /* yygindex */
>> +
>> +#ifndef yytable
>> +#define yytable    _nsyytable
>> +#endif /* yytable */
>> +
>> +#ifndef yycheck
>> +#define yycheck    _nsyycheck
>> +#endif /* yycheck */
>> +
>> +#ifndef yyname
>> +#define yyname     _nsyyname
>> +#endif /* yyname */
>> +
>> +#ifndef yyrule
>> +#define yyrule     _nsyyrule
>> +#endif /* yyrule */
>> +#define YYPREFIX "_nsyy"
>>
>> -/* Substitute the variable and function names.  */
>> -#define yyparse         _nsyyparse
>> -#define yylex           _nsyylex
>> -#define yyerror         _nsyyerror
>> -#define yylval          _nsyylval
>> -#define yychar          _nsyychar
>> -#define yydebug         _nsyydebug
>> -#define yynerrs         _nsyynerrs
>> -
>> -/* Copy the first part of user declarations.  */
>> -/* Line 371 of yacc.c  */
>> -#line 1 "freebsd/lib/libc/net/nsparser.y"
>> +#define YYPURE 0
>>
>> +#line 2 "../../freebsd/lib/libc/net/nsparser.y"
>>  /*     $NetBSD: nsparser.y,v 1.3 1999/01/25 00:16:18 lukem Exp $
 */
>>
>>  /*-
>> @@ -126,1685 +151,586 @@ static void    _nsaddsrctomap(const char *);
>>
>>  static ns_dbt          curdbt;
>>  static ns_src          cursrc;
>> -
>> -/* Line 371 of yacc.c  */
>> -#line 132 "_nsyy.tab.c"
>> -
>> -# ifndef YY_NULL
>> -#  if defined __cplusplus && 201103L <= __cplusplus
>> -#   define YY_NULL nullptr
>> -#  else
>> -#   define YY_NULL 0
>> -#  endif
>> -# endif
>> -
>> -/* Enabling verbose error messages.  */
>> -#ifdef YYERROR_VERBOSE
>> -# undef YYERROR_VERBOSE
>> -# define YYERROR_VERBOSE 1
>> -#else
>> -# define YYERROR_VERBOSE 0
>> -#endif
>> -
>> -/* In a future release of Bison, this section will be replaced
>> -   by #include "_nsyy.tab.h".  */
>> -#ifndef YY__NSYY_NSYY_TAB_H_INCLUDED
>> -# define YY__NSYY_NSYY_TAB_H_INCLUDED
>> -/* Enabling traces.  */
>> -#ifndef YYDEBUG
>> -# define YYDEBUG 0
>> -#endif
>> -#if YYDEBUG
>> -extern int _nsyydebug;
>> -#endif
>> -
>> -/* Tokens.  */
>> -#ifndef YYTOKENTYPE
>> -# define YYTOKENTYPE
>> -   /* Put the tokens into the symbol table, so that GDB and other
debuggers
>> -      know about them.  */
>> -   enum yytokentype {
>> -     NL = 258,
>> -     SUCCESS = 259,
>> -     UNAVAIL = 260,
>> -     NOTFOUND = 261,
>> -     TRYAGAIN = 262,
>> -     RETURN = 263,
>> -     CONTINUE = 264,
>> -     ERRORTOKEN = 265,
>> -     STRING = 266
>> -   };
>> -#endif
>> -/* Tokens.  */
>> -#define NL 258
>> -#define SUCCESS 259
>> -#define UNAVAIL 260
>> -#define NOTFOUND 261
>> -#define TRYAGAIN 262
>> -#define RETURN 263
>> -#define CONTINUE 264
>> -#define ERRORTOKEN 265
>> -#define STRING 266
>> -
>> -
>> -
>> -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
>> -typedef union YYSTYPE
>> -{
>> -/* Line 387 of yacc.c  */
>> -#line 58 "freebsd/lib/libc/net/nsparser.y"
>> -
>> +#line 58 "../../freebsd/lib/libc/net/nsparser.y"
>> +#ifdef YYSTYPE
>> +#undef  YYSTYPE_IS_DECLARED
>> +#define YYSTYPE_IS_DECLARED 1
>> +#endif
>> +#ifndef YYSTYPE_IS_DECLARED
>> +#define YYSTYPE_IS_DECLARED 1
>> +typedef union {
>>         char *str;
>>         int   mapval;
>> -
>> -
>> -/* Line 387 of yacc.c  */
>> -#line 203 "_nsyy.tab.c"
>>  } YYSTYPE;
>> -# define YYSTYPE_IS_TRIVIAL 1
>> -# define yystype YYSTYPE /* obsolescent; will be withdrawn */
>> -# define YYSTYPE_IS_DECLARED 1
>> -#endif
>> -
>> -extern YYSTYPE _nsyylval;
>> +#endif /* !YYSTYPE_IS_DECLARED */
>> +#line 167 "_nsyy.tab.c"
>>
>> +/* compatibility with bison */
>>  #ifdef YYPARSE_PARAM
>> -#if defined __STDC__ || defined __cplusplus
>> -int _nsyyparse (void *YYPARSE_PARAM);
>> -#else
>> -int _nsyyparse ();
>> -#endif
>> -#else /* ! YYPARSE_PARAM */
>> -#if defined __STDC__ || defined __cplusplus
>> -int _nsyyparse (void);
>> -#else
>> -int _nsyyparse ();
>> -#endif
>> -#endif /* ! YYPARSE_PARAM */
>> -
>> -#endif /* !YY__NSYY_NSYY_TAB_H_INCLUDED  */
>> -
>> -/* Copy the second part of user declarations.  */
>> -
>> -/* Line 390 of yacc.c  */
>> -#line 231 "_nsyy.tab.c"
>> -
>> -#ifdef short
>> -# undef short
>> -#endif
>> -
>> -#ifdef YYTYPE_UINT8
>> -typedef YYTYPE_UINT8 yytype_uint8;
>> -#else
>> -typedef unsigned char yytype_uint8;
>> -#endif
>> -
>> -#ifdef YYTYPE_INT8
>> -typedef YYTYPE_INT8 yytype_int8;
>> -#elif (defined __STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -typedef signed char yytype_int8;
>> -#else
>> -typedef short int yytype_int8;
>> -#endif
>> -
>> -#ifdef YYTYPE_UINT16
>> -typedef YYTYPE_UINT16 yytype_uint16;
>> -#else
>> -typedef unsigned short int yytype_uint16;
>> -#endif
>> -
>> -#ifdef YYTYPE_INT16
>> -typedef YYTYPE_INT16 yytype_int16;
>> -#else
>> -typedef short int yytype_int16;
>> -#endif
>> -
>> -#ifndef YYSIZE_T
>> -# ifdef __SIZE_TYPE__
>> -#  define YYSIZE_T __SIZE_TYPE__
>> -# elif defined size_t
>> -#  define YYSIZE_T size_t
>> -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__
\
>> -     || defined __cplusplus || defined _MSC_VER)
>> -#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
>> -#  define YYSIZE_T size_t
>> +/* compatibility with FreeBSD */
>> +# ifdef YYPARSE_PARAM_TYPE
>> +#  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
>>  # else
>> -#  define YYSIZE_T unsigned int
>> -# endif
>> -#endif
>> -
>> -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
>> -
>> -#ifndef YY_
>> -# if defined YYENABLE_NLS && YYENABLE_NLS
>> -#  if ENABLE_NLS
>> -#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
>> -#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
>> -#  endif
>> +#  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
>>  # endif
>> -# ifndef YY_
>> -#  define YY_(Msgid) Msgid
>> -# endif
>> -#endif
>> -
>> -/* Suppress unused-variable warnings by "using" E.  */
>> -#if ! defined lint || defined __GNUC__
>> -# define YYUSE(E) ((void) (E))
>>  #else
>> -# define YYUSE(E) /* empty */
>> +# define YYPARSE_DECL() yyparse(void)
>>  #endif
>>
>> -/* Identity function, used to suppress warnings about constant
conditions.  */
>> -#ifndef lint
>> -# define YYID(N) (N)
>> -#else
>> -#if (defined __STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -static int
>> -YYID (int yyi)
>> +/* Parameters sent to lex. */
>> +#ifdef YYLEX_PARAM
>> +# define YYLEX_DECL() yylex(void *YYLEX_PARAM)
>> +# define YYLEX yylex(YYLEX_PARAM)
>>  #else
>> -static int
>> -YYID (yyi)
>> -    int yyi;
>> -#endif
>> -{
>> -  return yyi;
>> -}
>> -#endif
>> -
>> -#if ! defined yyoverflow || YYERROR_VERBOSE
>> -
>> -/* The parser invokes alloca or malloc; define the necessary symbols.
*/
>> -
>> -# ifdef YYSTACK_USE_ALLOCA
>> -#  if YYSTACK_USE_ALLOCA
>> -#   ifdef __GNUC__
>> -#    define YYSTACK_ALLOC __builtin_alloca
>> -#   elif defined __BUILTIN_VA_ARG_INCR
>> -#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
>> -#   elif defined _AIX
>> -#    define YYSTACK_ALLOC __alloca
>> -#   elif defined _MSC_VER
>> -#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
>> -#    define alloca _alloca
>> -#   else
>> -#    define YYSTACK_ALLOC alloca
>> -#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined
__STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
>> -      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
>> -#     ifndef EXIT_SUCCESS
>> -#      define EXIT_SUCCESS 0
>> -#     endif
>> -#    endif
>> -#   endif
>> -#  endif
>> -# endif
>> -
>> -# ifdef YYSTACK_ALLOC
>> -   /* Pacify GCC's `empty if-body' warning.  */
>> -#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
>> -#  ifndef YYSTACK_ALLOC_MAXIMUM
>> -    /* The OS might guarantee only one guard page at the bottom of the
stack,
>> -       and a page size can be as small as 4096 bytes.  So we cannot
safely
>> -       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller
number
>> -       to allow for a few compiler-allocated temporary stack slots.  */
>> -#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
>> -#  endif
>> -# else
>> -#  define YYSTACK_ALLOC YYMALLOC
>> -#  define YYSTACK_FREE YYFREE
>> -#  ifndef YYSTACK_ALLOC_MAXIMUM
>> -#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
>> -#  endif
>> -#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
>> -       && ! ((defined YYMALLOC || defined malloc) \
>> -            && (defined YYFREE || defined free)))
>> -#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
>> -#   ifndef EXIT_SUCCESS
>> -#    define EXIT_SUCCESS 0
>> -#   endif
>> -#  endif
>> -#  ifndef YYMALLOC
>> -#   define YYMALLOC malloc
>> -#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__
|| defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
>> -#   endif
>> -#  endif
>> -#  ifndef YYFREE
>> -#   define YYFREE free
>> -#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ ||
defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -void free (void *); /* INFRINGES ON USER NAME SPACE */
>> -#   endif
>> -#  endif
>> -# endif
>> -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
>> -
>> -
>> -#if (! defined yyoverflow \
>> -     && (! defined __cplusplus \
>> -        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
>> -
>> -/* A type that is properly aligned for any stack member.  */
>> -union yyalloc
>> -{
>> -  yytype_int16 yyss_alloc;
>> -  YYSTYPE yyvs_alloc;
>> -};
>> -
>> -/* The size of the maximum gap between one aligned stack and the next.
*/
>> -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
>> -
>> -/* The size of an array large to enough to hold all stacks, each with
>> -   N elements.  */
>> -# define YYSTACK_BYTES(N) \
>> -     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
>> -      + YYSTACK_GAP_MAXIMUM)
>> -
>> -# define YYCOPY_NEEDED 1
>> -
>> -/* Relocate STACK from its old location to the new one.  The
>> -   local variables YYSIZE and YYSTACKSIZE give the old and new number of
>> -   elements in the stack, and YYPTR gives the new location of the
>> -   stack.  Advance YYPTR to a properly aligned location for the next
>> -   stack.  */
>> -# define YYSTACK_RELOCATE(Stack_alloc, Stack)                          \
>> -    do                                                                 \
>> -      {
        \
>> -       YYSIZE_T yynewbytes;                                            \
>> -       YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
>> -       Stack = &yyptr->Stack_alloc;                                    \
>> -       yynewbytes = yystacksize * sizeof (*Stack) +
YYSTACK_GAP_MAXIMUM; \
>> -       yyptr += yynewbytes / sizeof (*yyptr);                          \
>> -      }
        \
>> -    while (YYID (0))
>> -
>> -#endif
>> -
>> -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
>> -/* Copy COUNT objects from SRC to DST.  The source and destination do
>> -   not overlap.  */
>> -# ifndef YYCOPY
>> -#  if defined __GNUC__ && 1 < __GNUC__
>> -#   define YYCOPY(Dst, Src, Count) \
>> -      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
>> -#  else
>> -#   define YYCOPY(Dst, Src, Count)              \
>> -      do                                        \
>> -        {                                       \
>> -          YYSIZE_T yyi;                         \
>> -          for (yyi = 0; yyi < (Count); yyi++)   \
>> -            (Dst)[yyi] = (Src)[yyi];            \
>> -        }                                       \
>> -      while (YYID (0))
>> -#  endif
>> -# endif
>> -#endif /* !YYCOPY_NEEDED */
>> -
>> -/* YYFINAL -- State number of the termination state.  */
>> -#define YYFINAL  9
>> -/* YYLAST -- Last index in YYTABLE.  */
>> -#define YYLAST   30
>> -
>> -/* YYNTOKENS -- Number of terminals.  */
>> -#define YYNTOKENS  16
>> -/* YYNNTS -- Number of nonterminals.  */
>> -#define YYNNTS  12
>> -/* YYNRULES -- Number of rules.  */
>> -#define YYNRULES  24
>> -/* YYNRULES -- Number of states.  */
>> -#define YYNSTATES  33
>> -
>> -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
>> -#define YYUNDEFTOK  2
>> -#define YYMAXUTOK   266
>> -
>> -#define YYTRANSLATE(YYX)                                               \
>> -  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
>> -
>> -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
>> -static const yytype_uint8 yytranslate[] =
>> -{
>> -       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,    12,     2,
>> -       2,    15,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,    13,     2,    14,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
>> -       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
>> -       5,     6,     7,     8,     9,    10,    11
>> -};
>> -
>> -#if YYDEBUG
>> -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
>> -   YYRHS.  */
>> -static const yytype_uint8 yyprhs[] =
>> -{
>> -       0,     0,     3,     4,     6,     8,    11,    13,    17,    22,
>> -      25,    27,    29,    32,    34,    35,    41,    43,    46,    50,
>> -      52,    54,    56,    58,    60
>> -};
>> -
>> -/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
>> -static const yytype_int8 yyrhs[] =
>> -{
>> -      17,     0,    -1,    -1,    18,    -1,    19,    -1,    18,    19,
>> -      -1,     3,    -1,    20,    12,     3,    -1,    20,    12,    21,
>> -       3,    -1,     1,     3,    -1,    11,    -1,    22,    -1,    21,
>> -      22,    -1,    11,    -1,    -1,    11,    13,    23,    24,    14,
>> -      -1,    25,    -1,    24,    25,    -1,    26,    15,    27,    -1,
>> -       4,    -1,     5,    -1,     6,    -1,     7,    -1,     8,    -1,
>> -       9,    -1
>> -};
>> -
>> -/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
>> -static const yytype_uint8 yyrline[] =
>> -{
>> -       0,    73,    73,    75,    79,    80,    84,    85,    89,    93,
>> -     100,   109,   110,   114,   119,   119,   126,   127,   131,   141,
>> -     142,   143,   144,   148,   149
>> -};
>> -#endif
>> -
>> -#if YYDEBUG || YYERROR_VERBOSE || 0
>> -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
>> -   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
>> -static const char *const yytname[] =
>> -{
>> -  "$end", "error", "$undefined", "NL", "SUCCESS", "UNAVAIL", "NOTFOUND",
>> -  "TRYAGAIN", "RETURN", "CONTINUE", "ERRORTOKEN", "STRING", "':'",
"'['",
>> -  "']'", "'='", "$accept", "File", "Lines", "Entry", "Database",
"Srclist",
>> -  "Item", "$@1", "Criteria", "Criterion", "Status", "Action", YY_NULL
>> +# define YYLEX_DECL() yylex(void)
>> +# define YYLEX yylex()
>> +#endif
>> +
>> +/* Parameters sent to yyerror. */
>> +#ifndef YYERROR_DECL
>> +#define YYERROR_DECL() yyerror(const char *s)
>> +#endif
>> +#ifndef YYERROR_CALL
>> +#define YYERROR_CALL(msg) yyerror(msg)
>> +#endif
>> +
>> +extern int YYPARSE_DECL();
>> +
>> +#define NL 257
>> +#define SUCCESS 258
>> +#define UNAVAIL 259
>> +#define NOTFOUND 260
>> +#define TRYAGAIN 261
>> +#define RETURN 262
>> +#define CONTINUE 263
>> +#define ERRORTOKEN 264
>> +#define STRING 265
>> +#define YYERRCODE 256
>> +typedef short YYINT;
>> +static const YYINT _nsyylhs[] = {                        -1,
>> +    0,    0,    3,    3,    4,    4,    4,    4,    5,    6,
>> +    6,    7,    9,    7,    8,    8,   10,    1,    1,    1,
>> +    1,    2,    2,
>>  };
>> -#endif
>> -
>> -# ifdef YYPRINT
>> -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
>> -   token YYLEX-NUM.  */
>> -static const yytype_uint16 yytoknum[] =
>> -{
>> -       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
>> -     265,   266,    58,    91,    93,    61
>> +static const YYINT _nsyylen[] = {                         2,
>> +    0,    1,    1,    2,    1,    3,    4,    2,    1,    1,
>> +    2,    1,    0,    5,    1,    2,    3,    1,    1,    1,
>> +    1,    1,    1,
>>  };
>> -# endif
>> -
>> -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
>> -static const yytype_uint8 yyr1[] =
>> -{
>> -       0,    16,    17,    17,    18,    18,    19,    19,    19,    19,
>> -      20,    21,    21,    22,    23,    22,    24,    24,    25,    26,
>> -      26,    26,    26,    27,    27
>> +static const YYINT _nsyydefred[] = {                      0,
>> +    0,    5,    9,    0,    0,    3,    0,    8,    4,    0,
>> +    6,    0,    0,   10,   13,    7,   11,    0,   18,   19,
>> +   20,   21,    0,    0,   15,    0,   14,   16,   22,   23,
>> +   17,
>>  };
>> -
>> -/* YYR2[YYN] -- Number of symbols composing right hand side of rule
YYN.  */
>> -static const yytype_uint8 yyr2[] =
>> -{
>> -       0,     2,     0,     1,     1,     2,     1,     3,     4,     2,
>> -       1,     1,     2,     1,     0,     5,     1,     2,     3,     1,
>> -       1,     1,     1,     1,     1
>> +static const YYINT _nsyydgoto[] = {                       4,
>> +   23,   31,    5,    6,    7,   13,   14,   24,   18,   25,
>>  };
>> -
>> -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
>> -   Performed when YYTABLE doesn't specify something else to do.  Zero
>> -   means the default is an error.  */
>> -static const yytype_uint8 yydefact[] =
>> -{
>> -       0,     0,     6,    10,     0,     0,     4,     0,     9,     1,
>> -       5,     0,     7,    13,     0,    11,    14,     8,    12,     0,
>> -      19,    20,    21,    22,     0,    16,     0,    15,    17,     0,
>> -      23,    24,    18
>> +static const YYINT _nsyysindex[] = {                   -255,
>> + -249,    0,    0,    0, -255,    0,  -49,    0,    0, -254,
>> +    0,  -73, -253,    0,    0,    0,    0, -244,    0,    0,
>> +    0,    0,  -42,  -93,    0, -256,    0,    0,    0,    0,
>> +    0,
>>  };
>> -
>> -/* YYDEFGOTO[NTERM-NUM].  */
>> -static const yytype_int8 yydefgoto[] =
>> -{
>> -      -1,     4,     5,     6,     7,    14,    15,    19,    24,    25,
>> -      26,    32
>> +static const YYINT _nsyyrindex[] = {                     20,
>> +    0,    0,    0,    0,   21,    0,    0,    0,    0,    0,
>> +    0, -252,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,
>>  };
>> -
>> -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
>> -   STATE-NUM.  */
>> -#define YYPACT_NINF -4
>> -static const yytype_int8 yypact[] =
>> -{
>> -       0,     5,    -4,    -4,     9,     4,    -4,     1,    -4,    -4,
>> -      -4,    -1,    -4,    11,     3,    -4,    -4,    -4,    -4,    16,
>> -      -4,    -4,    -4,    -4,    12,    -4,    -3,    -4,    -4,    19,
>> -      -4,    -4,    -4
>> +static const YYINT _nsyygindex[] = {                      0,
>> +    0,    0,    0,   17,    0,    0,   10,    0,    0,    1,
>>  };
>> -
>> -/* YYPGOTO[NTERM-NUM].  */
>> -static const yytype_int8 yypgoto[] =
>> -{
>> -      -4,    -4,    -4,    20,    -4,    -4,    15,    -4,    -4,     6,
>> -      -4,    -4
>> +#define YYTABLESIZE 168
>> +static const YYINT _nsyytable[] = {                      27,
>> +    1,    2,   11,   16,   12,   29,   30,    8,   10,    3,
>> +   12,   12,   12,   19,   20,   21,   22,   15,   26,    1,
>> +    2,    9,   17,    0,   28,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
>> +    0,    0,    0,    0,   19,   20,   21,   22,
>>  };
>> -
>> -/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
>> -   positive, shift that token.  If negative, reduce the rule which
>> -   number is the opposite.  If YYTABLE_NINF, syntax error.  */
>> -#define YYTABLE_NINF -4
>> -static const yytype_int8 yytable[] =
>> -{
>> -      -2,     1,    12,     2,    -3,     1,    17,     2,     8,     9,
>> -      13,     3,    29,    11,    13,     3,    20,    21,    22,    23,
>> -      20,    21,    22,    23,    16,    10,    27,    30,    31,    18,
>> -      28
>> +static const YYINT _nsyycheck[] = {                      93,
>> +  256,  257,  257,  257,  257,  262,  263,  257,   58,  265,
>> +  265,  265,  265,  258,  259,  260,  261,   91,   61,    0,
>> +    0,    5,   13,   -1,   24,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
>> +   -1,   -1,   -1,   -1,  258,  259,  260,  261,
>>  };
>> -
>> -#define yypact_value_is_default(Yystate) \
>> -  (!!((Yystate) == (-4)))
>> -
>> -#define yytable_value_is_error(Yytable_value) \
>> -  YYID (0)
>> -
>> -static const yytype_uint8 yycheck[] =
>> -{
>> -       0,     1,     3,     3,     0,     1,     3,     3,     3,     0,
>> -      11,    11,    15,    12,    11,    11,     4,     5,     6,     7,
>> -       4,     5,     6,     7,    13,     5,    14,     8,     9,    14,
>> -      24
>> +#define YYFINAL 4
>> +#ifndef YYDEBUG
>> +#define YYDEBUG 0
>> +#endif
>> +#define YYMAXTOKEN 265
>> +#define YYUNDFTOKEN 278
>> +#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
>> +#if YYDEBUG
>> +static const char *const _nsyyname[] = {
>> +
>>
+"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
>>
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"':'",0,0,"'='",0,0,0,0,0,0,0,0,
>>
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,
>>
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
>>
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
>>
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
>>
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"NL","SUCCESS",
>>
+"UNAVAIL","NOTFOUND","TRYAGAIN","RETURN","CONTINUE","ERRORTOKEN","STRING",0,0,0,
>> +0,0,0,0,0,0,0,0,0,"illegal-symbol",
>>  };
>> +static const char *const _nsyyrule[] = {
>> +"$accept : File",
>> +"File :",
>> +"File : Lines",
>> +"Lines : Entry",
>> +"Lines : Lines Entry",
>> +"Entry : NL",
>> +"Entry : Database ':' NL",
>> +"Entry : Database ':' Srclist NL",
>> +"Entry : error NL",
>> +"Database : STRING",
>> +"Srclist : Item",
>> +"Srclist : Srclist Item",
>> +"Item : STRING",
>> +"$$1 :",
>> +"Item : STRING '[' $$1 Criteria ']'",
>> +"Criteria : Criterion",
>> +"Criteria : Criteria Criterion",
>> +"Criterion : Status '=' Action",
>> +"Status : SUCCESS",
>> +"Status : UNAVAIL",
>> +"Status : NOTFOUND",
>> +"Status : TRYAGAIN",
>> +"Action : RETURN",
>> +"Action : CONTINUE",
>>
>> -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
>> -   symbol of state STATE-NUM.  */
>> -static const yytype_uint8 yystos[] =
>> -{
>> -       0,     1,     3,    11,    17,    18,    19,    20,     3,     0,
>> -      19,    12,     3,    11,    21,    22,    13,     3,    22,    23,
>> -       4,     5,     6,     7,    24,    25,    26,    14,    25,    15,
>> -       8,     9,    27
>>  };
>> -
>> -#define yyerrok                (yyerrstatus = 0)
>> -#define yyclearin      (yychar = YYEMPTY)
>> -#define YYEMPTY                (-2)
>> -#define YYEOF          0
>> -
>> -#define YYACCEPT       goto yyacceptlab
>> -#define YYABORT                goto yyabortlab
>> -#define YYERROR                goto yyerrorlab
>> -
>> -
>> -/* Like YYERROR except do call yyerror.  This remains here temporarily
>> -   to ease the transition to the new meaning of YYERROR, for GCC.
>> -   Once GCC version 2 has supplanted version 1, this can go.  However,
>> -   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
>> -   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
>> -   discussed.  */
>> -
>> -#define YYFAIL         goto yyerrlab
>> -#if defined YYFAIL
>> -  /* This is here to suppress warnings from the GCC cpp's
>> -     -Wunused-macros.  Normally we don't worry about that warning, but
>> -     some users do, and we want to make it easy for users to remove
>> -     YYFAIL uses, which will produce warnings from Bison 2.5.  */
>>  #endif
>>
>> -#define YYRECOVERING()  (!!yyerrstatus)
>> -
>> -#define YYBACKUP(Token, Value)                                  \
>> -do                                                              \
>> -  if (yychar == YYEMPTY)                                        \
>> -    {                                                           \
>> -      yychar = (Token);                                         \
>> -      yylval = (Value);                                         \
>> -      YYPOPSTACK (yylen);                                       \
>> -      yystate = *yyssp;                                         \
>> -      goto yybackup;                                            \
>> -    }                                                           \
>> -  else                                                          \
>> -    {                                                           \
>> -      yyerror (YY_("syntax error: cannot back up")); \
>> -      YYERROR;                                                 \
>> -    }                                                          \
>> -while (YYID (0))
>> -
>> -/* Error token number */
>> -#define YYTERROR       1
>> -#define YYERRCODE      256
>> -
>> -
>> -/* This macro is provided for backward compatibility. */
>> -#ifndef YY_LOCATION_PRINT
>> -# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
>> -#endif
>> +int      yydebug;
>> +int      yynerrs;
>>
>> +int      yyerrflag;
>> +int      yychar;
>> +YYSTYPE  yyval;
>> +YYSTYPE  yylval;
>>
>> -/* YYLEX -- calling `yylex' with the right arguments.  */
>> -#ifdef YYLEX_PARAM
>> -# define YYLEX yylex (YYLEX_PARAM)
>> +/* define the initial stack-sizes */
>> +#ifdef YYSTACKSIZE
>> +#undef YYMAXDEPTH
>> +#define YYMAXDEPTH  YYSTACKSIZE
>>  #else
>> -# define YYLEX yylex ()
>> -#endif
>> -
>> -/* Enable debugging if requested.  */
>> -#if YYDEBUG
>> -
>> -# ifndef YYFPRINTF
>> -#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
>> -#  define YYFPRINTF fprintf
>> -# endif
>> -
>> -# define YYDPRINTF(Args)                       \
>> -do {                                           \
>> -  if (yydebug)                                 \
>> -    YYFPRINTF Args;                            \
>> -} while (YYID (0))
>> -
>> -# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 \
>> -do {
 \
>> -  if (yydebug)
 \
>> -    {
  \
>> -      YYFPRINTF (stderr, "%s ", Title);
          \
>> -      yy_symbol_print (stderr,
 \
>> -                 Type, Value); \
>> -      YYFPRINTF (stderr, "\n");
          \
>> -    }
  \
>> -} while (YYID (0))
>> -
>> -
>> -/*--------------------------------.
>> -| Print this symbol on YYOUTPUT.  |
>> -`--------------------------------*/
>> -
>> -/*ARGSUSED*/
>> -#if (defined __STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -static void
>> -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const *
const yyvaluep)
>> +#ifdef YYMAXDEPTH
>> +#define YYSTACKSIZE YYMAXDEPTH
>>  #else
>> -static void
>> -yy_symbol_value_print (yyoutput, yytype, yyvaluep)
>> -    FILE *yyoutput;
>> -    int yytype;
>> -    YYSTYPE const * const yyvaluep;
>> +#define YYSTACKSIZE 10000
>> +#define YYMAXDEPTH  10000
>> +#endif
>>  #endif
>> -{
>> -  FILE *yyo = yyoutput;
>> -  YYUSE (yyo);
>> -  if (!yyvaluep)
>> -    return;
>> -# ifdef YYPRINT
>> -  if (yytype < YYNTOKENS)
>> -    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
>> -# else
>> -  YYUSE (yyoutput);
>> -# endif
>> -  switch (yytype)
>> -    {
>> -      default:
>> -        break;
>> -    }
>> -}
>>
>> +#define YYINITSTACKSIZE 200
>>
>> -/*--------------------------------.
>> -| Print this symbol on YYOUTPUT.  |
>> -`--------------------------------*/
>> +typedef struct {
>> +    unsigned stacksize;
>> +    YYINT    *s_base;
>> +    YYINT    *s_mark;
>> +    YYINT    *s_last;
>> +    YYSTYPE  *l_base;
>> +    YYSTYPE  *l_mark;
>> +} YYSTACKDATA;
>> +/* variables for the parser stack */
>> +static YYSTACKDATA yystack;
>> +#line 153 "../../freebsd/lib/libc/net/nsparser.y"
>>
>> -#if (defined __STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>>  static void
>> -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const
yyvaluep)
>> -#else
>> -static void
>> -yy_symbol_print (yyoutput, yytype, yyvaluep)
>> -    FILE *yyoutput;
>> -    int yytype;
>> -    YYSTYPE const * const yyvaluep;
>> -#endif
>> +_nsaddsrctomap(elem)
>> +       const char *elem;
>>  {
>> -  if (yytype < YYNTOKENS)
>> -    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
>> -  else
>> -    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
>> +       int             i, lineno;
>> +       extern int      _nsyylineno;
>> +       extern char     _nsyytext[];
>>
>> -  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
>> -  YYFPRINTF (yyoutput, ")");
>> +       lineno = _nsyylineno - (_nsyytext[0] == '\n' ? 1 : 0);
>> +       if (curdbt.srclistsize > 0) {
>> +               if (((strcasecmp(elem, NSSRC_COMPAT) == 0) &&
>> +                   (strcasecmp(curdbt.srclist[0].name, NSSRC_CACHE) !=
0)) ||
>> +                   (strcasecmp(curdbt.srclist[0].name, NSSRC_COMPAT) ==
0)) {
>> +                       syslog(LOG_ERR,
>> +           "NSSWITCH(nsparser): %s line %d: 'compat' used with sources,
other than 'cache'",
>> +                           _PATH_NS_CONF, lineno);
>> +                       free((void*)elem);
>> +                       return;
>> +               }
>> +       }
>> +       for (i = 0; i < curdbt.srclistsize; i++) {
>> +               if (strcasecmp(curdbt.srclist[i].name, elem) == 0) {
>> +                       syslog(LOG_ERR,
>> +                      "NSSWITCH(nsparser): %s line %d: duplicate source
'%s'",
>> +                           _PATH_NS_CONF, lineno, elem);
>> +                       free((void*)elem);
>> +                       return;
>> +               }
>> +       }
>> +       cursrc.name = elem;
>> +       _nsdbtaddsrc(&curdbt, &cursrc);
>>  }
>> +#line 400 "_nsyy.tab.c"
>>
>> -/*------------------------------------------------------------------.
>> -| yy_stack_print -- Print the state stack from its BOTTOM up to its |
>> -| TOP (included).                                                   |
>> -`------------------------------------------------------------------*/
>> -
>> -#if (defined __STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -static void
>> -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
>> -#else
>> -static void
>> -yy_stack_print (yybottom, yytop)
>> -    yytype_int16 *yybottom;
>> -    yytype_int16 *yytop;
>> +#if YYDEBUG
>> +#include <stdio.h>             /* needed for printf */
>>  #endif
>> -{
>> -  YYFPRINTF (stderr, "Stack now");
>> -  for (; yybottom <= yytop; yybottom++)
>> -    {
>> -      int yybot = *yybottom;
>> -      YYFPRINTF (stderr, " %d", yybot);
>> -    }
>> -  YYFPRINTF (stderr, "\n");
>> -}
>> -
>> -# define YY_STACK_PRINT(Bottom, Top)                           \
>> -do {                                                           \
>> -  if (yydebug)                                                 \
>> -    yy_stack_print ((Bottom), (Top));                          \
>> -} while (YYID (0))
>> -
>>
>> -/*------------------------------------------------.
>> -| Report that the YYRULE is going to be reduced.  |
>> -`------------------------------------------------*/
>> +#include <stdlib.h>    /* needed for malloc, etc */
>> +#include <string.h>    /* needed for memset */
>>
>> -#if (defined __STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -static void
>> -yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
>> -#else
>> -static void
>> -yy_reduce_print (yyvsp, yyrule)
>> -    YYSTYPE *yyvsp;
>> -    int yyrule;
>> -#endif
>> +/* allocate initial stack or double stack size, up to YYMAXDEPTH */
>> +static int yygrowstack(YYSTACKDATA *data)
>>  {
>> -  int yynrhs = yyr2[yyrule];
>> -  int yyi;
>> -  unsigned long int yylno = yyrline[yyrule];
>> -  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
>> -            yyrule - 1, yylno);
>> -  /* The symbols being reduced.  */
>> -  for (yyi = 0; yyi < yynrhs; yyi++)
>> -    {
>> -      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
>> -      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
>> -                      &(yyvsp[(yyi + 1) - (yynrhs)])
>> -                                      );
>> -      YYFPRINTF (stderr, "\n");
>> -    }
>> +    int i;
>> +    unsigned newsize;
>> +    YYINT *newss;
>> +    YYSTYPE *newvs;
>> +
>> +    if ((newsize = data->stacksize) == 0)
>> +        newsize = YYINITSTACKSIZE;
>> +    else if (newsize >= YYMAXDEPTH)
>> +        return YYENOMEM;
>> +    else if ((newsize *= 2) > YYMAXDEPTH)
>> +        newsize = YYMAXDEPTH;
>> +
>> +    i = (int) (data->s_mark - data->s_base);
>> +    newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
>> +    if (newss == 0)
>> +        return YYENOMEM;
>> +
>> +    data->s_base = newss;
>> +    data->s_mark = newss + i;
>> +
>> +    newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
>> +    if (newvs == 0)
>> +        return YYENOMEM;
>> +
>> +    data->l_base = newvs;
>> +    data->l_mark = newvs + i;
>> +
>> +    data->stacksize = newsize;
>> +    data->s_last = data->s_base + newsize - 1;
>> +    return 0;
>>  }
>>
>> -# define YY_REDUCE_PRINT(Rule)         \
>> -do {                                   \
>> -  if (yydebug)                         \
>> -    yy_reduce_print (yyvsp, Rule); \
>> -} while (YYID (0))
>> -
>> -/* Nonzero means print parse trace.  It is left uninitialized so that
>> -   multiple parsers can coexist.  */
>> -int yydebug;
>> -#else /* !YYDEBUG */
>> -# define YYDPRINTF(Args)
>> -# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
>> -# define YY_STACK_PRINT(Bottom, Top)
>> -# define YY_REDUCE_PRINT(Rule)
>> -#endif /* !YYDEBUG */
>> -
>> -
>> -/* YYINITDEPTH -- initial size of the parser's stacks.  */
>> -#ifndef        YYINITDEPTH
>> -# define YYINITDEPTH 200
>> -#endif
>> -
>> -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
>> -   if the built-in stack extension method is used).
>> -
>> -   Do not make this value too large; the results are undefined if
>> -   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
>> -   evaluated with infinite-precision integer arithmetic.  */
>> -
>> -#ifndef YYMAXDEPTH
>> -# define YYMAXDEPTH 10000
>> -#endif
>> -
>> -
>> -#if YYERROR_VERBOSE
>> -
>> -# ifndef yystrlen
>> -#  if defined __GLIBC__ && defined _STRING_H
>> -#   define yystrlen strlen
>> -#  else
>> -/* Return the length of YYSTR.  */
>> -#if (defined __STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -static YYSIZE_T
>> -yystrlen (const char *yystr)
>> -#else
>> -static YYSIZE_T
>> -yystrlen (yystr)
>> -    const char *yystr;
>> -#endif
>> +#if YYPURE || defined(YY_NO_LEAKS)
>> +static void yyfreestack(YYSTACKDATA *data)
>>  {
>> -  YYSIZE_T yylen;
>> -  for (yylen = 0; yystr[yylen]; yylen++)
>> -    continue;
>> -  return yylen;
>> +    free(data->s_base);
>> +    free(data->l_base);
>> +    memset(data, 0, sizeof(*data));
>>  }
>> -#  endif
>> -# endif
>> -
>> -# ifndef yystpcpy
>> -#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
>> -#   define yystpcpy stpcpy
>> -#  else
>> -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0'
in
>> -   YYDEST.  */
>> -#if (defined __STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _MSC_VER)
>> -static char *
>> -yystpcpy (char *yydest, const char *yysrc)
>>  #else
>> -static char *
>> -yystpcpy (yydest, yysrc)
>> -    char *yydest;
>> -    const char *yysrc;
>> +#define yyfreestack(data) /* nothing */
>>  #endif
>> -{
>> -  char *yyd = yydest;
>> -  const char *yys = yysrc;
>>
>> -  while ((*yyd++ = *yys++) != '\0')
>> -    continue;
>> +#define YYABORT  goto yyabort
>> +#define YYREJECT goto yyabort
>> +#define YYACCEPT goto yyaccept
>> +#define YYERROR  goto yyerrlab
>>
>> -  return yyd - 1;
>> -}
>> -#  endif
>> -# endif
>> -
>> -# ifndef yytnamerr
>> -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
>> -   quotes and backslashes, so that it's suitable for yyerror.  The
>> -   heuristic is that double-quoting is unnecessary unless the string
>> -   contains an apostrophe, a comma, or backslash (other than
>> -   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
>> -   null, do not copy; instead, return the length of what the result
>> -   would have been.  */
>> -static YYSIZE_T
>> -yytnamerr (char *yyres, const char *yystr)
>> +int
>> +YYPARSE_DECL()
>>  {
>> -  if (*yystr == '"')
>> +    int yym, yyn, yystate;
>> +#if YYDEBUG
>> +    const char *yys;
>> +
>> +    if ((yys = getenv("YYDEBUG")) != 0)
>>      {
>> -      YYSIZE_T yyn = 0;
>> -      char const *yyp = yystr;
>> -
>> -      for (;;)
>> -       switch (*++yyp)
>> -         {
>> -         case '\'':
>> -         case ',':
>> -           goto do_not_strip_quotes;
>> -
>> -         case '\\':
>> -           if (*++yyp != '\\')
>> -             goto do_not_strip_quotes;
>> -           /* Fall through.  */
>> -         default:
>> -           if (yyres)
>> -             yyres[yyn] = *yyp;
>> -           yyn++;
>> -           break;
>> -
>> -         case '"':
>> -           if (yyres)
>> -             yyres[yyn] = '\0';
>> -           return yyn;
>> -         }
>> -    do_not_strip_quotes: ;
>> +        yyn = *yys;
>> +        if (yyn >= '0' && yyn <= '9')
>> +            yydebug = yyn - '0';
>>      }
>> +#endif
>>
>> -  if (! yyres)
>> -    return yystrlen (yystr);
>> +    yynerrs = 0;
>> +    yyerrflag = 0;
>> +    yychar = YYEMPTY;
>> +    yystate = 0;
>>
>> -  return yystpcpy (yyres, yystr) - yyres;
>> -}
>> -# endif
>> +#if YYPURE
>> +    memset(&yystack, 0, sizeof(yystack));
>> +#endif
>>
>> -/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
>> -   about the unexpected token YYTOKEN for the state stack whose top is
>> -   YYSSP.
>> -
>> -   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
>> -   not large enough to hold the message.  In that case, also set
>> -   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
>> -   required number of bytes is too large to store.  */
>> -static int
>> -yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
>> -                yytype_int16 *yyssp, int yytoken)
>> -{
>> -  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
>> -  YYSIZE_T yysize = yysize0;
>> -  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
>> -  /* Internationalized format string. */
>> -  const char *yyformat = YY_NULL;
>> -  /* Arguments of yyformat. */
>> -  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
>> -  /* Number of reported tokens (one for the "unexpected", one per
>> -     "expected"). */
>> -  int yycount = 0;
>> -
>> -  /* There are many possibilities here to consider:
>> -     - Assume YYFAIL is not used.  It's too flawed to consider.  See
>> -       <
http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
>> -       for details.  YYERROR is fine as it does not invoke this
>> -       function.
>> -     - If this state is a consistent state with a default action, then
>> -       the only way this function was invoked is if the default action
>> -       is an error action.  In that case, don't check for expected
>> -       tokens because there are none.
>> -     - The only way there can be no lookahead present (in yychar) is if
>> -       this state is a consistent state with a default action.  Thus,
>> -       detecting the absence of a lookahead is sufficient to determine
>> -       that there is no unexpected or expected token to report.  In that
>> -       case, just report a simple "syntax error".
>> -     - Don't assume there isn't a lookahead just because this state is a
>> -       consistent state with a default action.  There might have been a
>> -       previous inconsistent state, consistent state with a non-default
>> -       action, or user semantic action that manipulated yychar.
>> -     - Of course, the expected token list depends on states to have
>> -       correct lookahead information, and it depends on the parser not
>> -       to perform extra reductions after fetching a lookahead from the
>> -       scanner and before detecting a syntax error.  Thus, state merging
>> -       (from LALR or IELR) and default reductions corrupt the expected
>> -       token list.  However, the list is correct for canonical LR with
>> -       one exception: it will still contain any token that will not be
>> -       accepted due to an error action in a later state.
>> -  */
>> -  if (yytoken != YYEMPTY)
>> +    if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM)
goto yyoverflow;
>> +    yystack.s_mark = yystack.s_base;
>> +    yystack.l_mark = yystack.l_base;
>> +    yystate = 0;
>> +    *yystack.s_mark = 0;
>> +
>> +yyloop:
>> +    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
>> +    if (yychar < 0)
>>      {
>> -      int yyn = yypact[*yyssp];
>> -      yyarg[yycount++] = yytname[yytoken];
>> -      if (!yypact_value_is_default (yyn))
>> +        if ((yychar = YYLEX) < 0) yychar = YYEOF;
>> +#if YYDEBUG
>> +        if (yydebug)
>>          {
>> -          /* Start YYX at -YYN if negative to avoid negative indexes in
>> -             YYCHECK.  In other words, skip the first -YYN actions for
>> -             this state because they are default actions.  */
>> -          int yyxbegin = yyn < 0 ? -yyn : 0;
>> -          /* Stay within bounds of both yycheck and yytname.  */
>> -          int yychecklim = YYLAST - yyn + 1;
>> -          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
>> -          int yyx;
>> -
>> -          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
>> -            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
>> -                && !yytable_value_is_error (yytable[yyx + yyn]))
>> -              {
>> -                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
>> -                  {
>> -                    yycount = 1;
>> -                    yysize = yysize0;
>> -                    break;
>> -                  }
>> -                yyarg[yycount++] = yytname[yyx];
>> -                {
>> -                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL,
yytname[yyx]);
>> -                  if (! (yysize <= yysize1
>> -                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
>> -                    return 2;
>> -                  yysize = yysize1;
>> -                }
>> -              }
>> +            yys = yyname[YYTRANSLATE(yychar)];
>> +            printf("%sdebug: state %d, reading %d (%s)\n",
>> +                    YYPREFIX, yystate, yychar, yys);
>>          }
>> +#endif
>>      }
>> -
>> -  switch (yycount)
>> -    {
>> -# define YYCASE_(N, S)                      \
>> -      case N:                               \
>> -        yyformat = S;                       \
>> -      break
>> -      YYCASE_(0, YY_("syntax error"));
>> -      YYCASE_(1, YY_("syntax error, unexpected %s"));
>> -      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
>> -      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or
%s"));
>> -      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s
or %s"));
>> -      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s
or %s or %s"));
>> -# undef YYCASE_
>> -    }
>> -
>> -  {
>> -    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
>> -    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
>> -      return 2;
>> -    yysize = yysize1;
>> -  }
>> -
>> -  if (*yymsg_alloc < yysize)
>> +    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
>> +            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
>>      {
>> -      *yymsg_alloc = 2 * yysize;
>> -      if (! (yysize <= *yymsg_alloc
>> -             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
>> -        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
>> -      return 1;
>> -    }
>> -
>> -  /* Avoid sprintf, as that infringes on the user's name space.
>> -     Don't have undefined behavior even if the translation
>> -     produced a string with the wrong number of "%s"s.  */
>> -  {
>> -    char *yyp = *yymsg;
>> -    int yyi = 0;
>> -    while ((*yyp = *yyformat) != '\0')
>> -      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
>> -        {
>> -          yyp += yytnamerr (yyp, yyarg[yyi++]);
>> -          yyformat += 2;
>> -        }
>> -      else
>> +#if YYDEBUG
>> +        if (yydebug)
>> +            printf("%sdebug: state %d, shifting to state %d\n",
>> +                    YYPREFIX, yystate, yytable[yyn]);
>> +#endif
>> +        if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)
== YYENOMEM)
>>          {
>> -          yyp++;
>> -          yyformat++;
>> +            goto yyoverflow;
>>          }
>> -  }
>> -  return 0;
>> -}
>> -#endif /* YYERROR_VERBOSE */
>> -
>> -/*-----------------------------------------------.
>> -| Release the memory associated to this symbol.  |
>> -`-----------------------------------------------*/
>> -
>> -/*ARGSUSED*/
>> -#if (defined __STDC__ || defined __C99__FUNC__ \
>> -     || defined __cplusplus || defined _
>
> ...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20150524/cfe28cd1/attachment-0002.html>


More information about the devel mailing list