[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