1264790Sbapt/* This file generated automatically using 2264790Sbapt * @Id: skel2c,v 1.3 2014/04/06 19:48:04 tom Exp @ 3264790Sbapt */ 4264790Sbapt 5264790Sbapt/* @Id: btyaccpar.skel,v 1.1 2014/04/02 22:44:41 tom Exp @ */ 6264790Sbapt 7264790Sbapt#include "defs.h" 8264790Sbapt 9264790Sbapt/* If the skeleton is changed, the banner should be changed so that */ 10264790Sbapt/* the altered version can be easily distinguished from the original. */ 11264790Sbapt/* */ 12264790Sbapt/* The #defines included with the banner are there because they are */ 13264790Sbapt/* useful in subsequent code. The macros #defined in the header or */ 14264790Sbapt/* the body either are not useful outside of semantic actions or */ 15264790Sbapt/* are conditional. */ 16264790Sbapt 17264790Sbaptconst char *const banner[] = 18264790Sbapt{ 19264790Sbapt "/* original parser id follows */", 20264790Sbapt "/* yysccsid[] = \"@(#)yaccpar 1.9 (Berkeley) 02/21/93\" */", 21272955Srodrigc "/* (use YYMAJOR/YYMINOR for ifdefs dependent of parser version) */", 22264790Sbapt "", 23264790Sbapt "#define YYBYACC 1", 24264790Sbapt CONCAT1("#define YYMAJOR ", YYMAJOR), 25264790Sbapt CONCAT1("#define YYMINOR ", YYMINOR), 26264790Sbapt#ifdef YYPATCH 27264790Sbapt CONCAT1("#define YYPATCH ", YYPATCH), 28264790Sbapt#endif 29264790Sbapt "", 30264790Sbapt "#define YYEMPTY (-1)", 31264790Sbapt "#define yyclearin (yychar = YYEMPTY)", 32264790Sbapt "#define yyerrok (yyerrflag = 0)", 33264790Sbapt "#define YYRECOVERING() (yyerrflag != 0)", 34264790Sbapt "#define YYENOMEM (-2)", 35264790Sbapt "#define YYEOF 0", 36264790Sbapt 0 37264790Sbapt}; 38264790Sbapt 39264790Sbaptconst char *const xdecls[] = 40264790Sbapt{ 41264790Sbapt "", 42264790Sbapt "extern int YYPARSE_DECL();", 43264790Sbapt 0 44264790Sbapt}; 45264790Sbapt 46264790Sbaptconst char *const tables[] = 47264790Sbapt{ 48264790Sbapt "extern const YYINT yylhs[];", 49264790Sbapt "extern const YYINT yylen[];", 50264790Sbapt "extern const YYINT yydefred[];", 51264790Sbapt "extern const YYINT yystos[];", 52264790Sbapt "extern const YYINT yydgoto[];", 53264790Sbapt "extern const YYINT yysindex[];", 54264790Sbapt "extern const YYINT yyrindex[];", 55264790Sbapt#if defined(YYBTYACC) 56264790Sbapt "#if YYBTYACC", 57264790Sbapt "extern const YYINT yycindex[];", 58264790Sbapt "#endif /* YYBTYACC */", 59272955Srodrigc#endif /* defined(YYBTYACC) */ 60264790Sbapt "extern const YYINT yygindex[];", 61264790Sbapt "extern const YYINT yytable[];", 62264790Sbapt "extern const YYINT yycheck[];", 63264790Sbapt#if defined(YYBTYACC) 64264790Sbapt "#if YYBTYACC", 65264790Sbapt "extern const YYINT yyctable[];", 66264790Sbapt "#endif /* YYBTYACC */", 67272955Srodrigc#endif /* defined(YYBTYACC) */ 68264790Sbapt "", 69264790Sbapt "#if YYDEBUG", 70264790Sbapt "extern const char *const yyname[];", 71264790Sbapt "extern const char *const yyrule[];", 72264790Sbapt "#endif", 73264790Sbapt 0 74264790Sbapt}; 75264790Sbapt 76264790Sbaptconst char *const global_vars[] = 77264790Sbapt{ 78264790Sbapt "", 79264790Sbapt "int yydebug;", 80264790Sbapt "int yynerrs;", 81264790Sbapt 0 82264790Sbapt}; 83264790Sbapt 84264790Sbaptconst char *const impure_vars[] = 85264790Sbapt{ 86264790Sbapt "", 87264790Sbapt "int yyerrflag;", 88264790Sbapt "int yychar;", 89264790Sbapt "YYSTYPE yyval;", 90264790Sbapt "YYSTYPE yylval;", 91264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 92264790Sbapt "YYLTYPE yyloc; /* position returned by actions */", 93264790Sbapt "YYLTYPE yylloc; /* position from the lexer */", 94264790Sbapt "#endif", 95264790Sbapt 0 96264790Sbapt}; 97264790Sbapt 98264790Sbaptconst char *const hdr_defs[] = 99264790Sbapt{ 100264790Sbapt "", 101264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 102264790Sbapt "#ifndef YYLLOC_DEFAULT", 103264790Sbapt "#define YYLLOC_DEFAULT(loc, rhs, n) \\", 104264790Sbapt "do \\", 105264790Sbapt "{ \\", 106264790Sbapt " if (n == 0) \\", 107264790Sbapt " { \\", 108264790Sbapt " (loc).first_line = ((rhs)[-1]).last_line; \\", 109264790Sbapt " (loc).first_column = ((rhs)[-1]).last_column; \\", 110264790Sbapt " (loc).last_line = ((rhs)[-1]).last_line; \\", 111264790Sbapt " (loc).last_column = ((rhs)[-1]).last_column; \\", 112264790Sbapt " } \\", 113264790Sbapt " else \\", 114264790Sbapt " { \\", 115264790Sbapt " (loc).first_line = ((rhs)[ 0 ]).first_line; \\", 116264790Sbapt " (loc).first_column = ((rhs)[ 0 ]).first_column; \\", 117264790Sbapt " (loc).last_line = ((rhs)[n-1]).last_line; \\", 118264790Sbapt " (loc).last_column = ((rhs)[n-1]).last_column; \\", 119264790Sbapt " } \\", 120264790Sbapt "} while (0)", 121264790Sbapt "#endif /* YYLLOC_DEFAULT */", 122264790Sbapt "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 123264790Sbapt#if defined(YYBTYACC) 124264790Sbapt "#if YYBTYACC", 125264790Sbapt "", 126264790Sbapt "#ifndef YYLVQUEUEGROWTH", 127264790Sbapt "#define YYLVQUEUEGROWTH 32", 128264790Sbapt "#endif", 129264790Sbapt "#endif /* YYBTYACC */", 130272955Srodrigc#endif /* defined(YYBTYACC) */ 131264790Sbapt "", 132264790Sbapt "/* define the initial stack-sizes */", 133264790Sbapt "#ifdef YYSTACKSIZE", 134264790Sbapt "#undef YYMAXDEPTH", 135264790Sbapt "#define YYMAXDEPTH YYSTACKSIZE", 136264790Sbapt "#else", 137264790Sbapt "#ifdef YYMAXDEPTH", 138264790Sbapt "#define YYSTACKSIZE YYMAXDEPTH", 139264790Sbapt "#else", 140264790Sbapt "#define YYSTACKSIZE 10000", 141264790Sbapt "#define YYMAXDEPTH 10000", 142264790Sbapt "#endif", 143264790Sbapt "#endif", 144264790Sbapt "", 145264790Sbapt "#ifndef YYINITSTACKSIZE", 146264790Sbapt "#define YYINITSTACKSIZE 200", 147264790Sbapt "#endif", 148264790Sbapt "", 149264790Sbapt "typedef struct {", 150264790Sbapt " unsigned stacksize;", 151264790Sbapt " short *s_base;", 152264790Sbapt " short *s_mark;", 153264790Sbapt " short *s_last;", 154264790Sbapt " YYSTYPE *l_base;", 155264790Sbapt " YYSTYPE *l_mark;", 156264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 157264790Sbapt " YYLTYPE *p_base;", 158264790Sbapt " YYLTYPE *p_mark;", 159264790Sbapt "#endif", 160264790Sbapt "} YYSTACKDATA;", 161264790Sbapt#if defined(YYBTYACC) 162264790Sbapt "#if YYBTYACC", 163264790Sbapt "", 164264790Sbapt "struct YYParseState_s", 165264790Sbapt "{", 166264790Sbapt " struct YYParseState_s *save; /* Previously saved parser state */", 167264790Sbapt " YYSTACKDATA yystack; /* saved parser stack */", 168264790Sbapt " int state; /* saved parser state */", 169264790Sbapt " int errflag; /* saved error recovery status */", 170264790Sbapt " int lexeme; /* saved index of the conflict lexeme in the lexical queue */", 171264790Sbapt " YYINT ctry; /* saved index in yyctable[] for this conflict */", 172264790Sbapt "};", 173264790Sbapt "typedef struct YYParseState_s YYParseState;", 174264790Sbapt "#endif /* YYBTYACC */", 175272955Srodrigc#endif /* defined(YYBTYACC) */ 176264790Sbapt 0 177264790Sbapt}; 178264790Sbapt 179264790Sbaptconst char *const hdr_vars[] = 180264790Sbapt{ 181264790Sbapt "/* variables for the parser stack */", 182264790Sbapt "static YYSTACKDATA yystack;", 183264790Sbapt#if defined(YYBTYACC) 184264790Sbapt "#if YYBTYACC", 185264790Sbapt "", 186264790Sbapt "/* Current parser state */", 187264790Sbapt "static YYParseState *yyps = 0;", 188264790Sbapt "", 189264790Sbapt "/* yypath != NULL: do the full parse, starting at *yypath parser state. */", 190264790Sbapt "static YYParseState *yypath = 0;", 191264790Sbapt "", 192264790Sbapt "/* Base of the lexical value queue */", 193264790Sbapt "static YYSTYPE *yylvals = 0;", 194264790Sbapt "", 195264790Sbapt "/* Current position at lexical value queue */", 196264790Sbapt "static YYSTYPE *yylvp = 0;", 197264790Sbapt "", 198264790Sbapt "/* End position of lexical value queue */", 199264790Sbapt "static YYSTYPE *yylve = 0;", 200264790Sbapt "", 201264790Sbapt "/* The last allocated position at the lexical value queue */", 202264790Sbapt "static YYSTYPE *yylvlim = 0;", 203264790Sbapt "", 204264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 205264790Sbapt "/* Base of the lexical position queue */", 206264790Sbapt "static YYLTYPE *yylpsns = 0;", 207264790Sbapt "", 208264790Sbapt "/* Current position at lexical position queue */", 209264790Sbapt "static YYLTYPE *yylpp = 0;", 210264790Sbapt "", 211264790Sbapt "/* End position of lexical position queue */", 212264790Sbapt "static YYLTYPE *yylpe = 0;", 213264790Sbapt "", 214264790Sbapt "/* The last allocated position at the lexical position queue */", 215264790Sbapt "static YYLTYPE *yylplim = 0;", 216264790Sbapt "#endif", 217264790Sbapt "", 218264790Sbapt "/* Current position at lexical token queue */", 219264790Sbapt "static short *yylexp = 0;", 220264790Sbapt "", 221264790Sbapt "static short *yylexemes = 0;", 222264790Sbapt "#endif /* YYBTYACC */", 223272955Srodrigc#endif /* defined(YYBTYACC) */ 224264790Sbapt 0 225264790Sbapt}; 226264790Sbapt 227264790Sbaptconst char *const body_vars[] = 228264790Sbapt{ 229264790Sbapt " int yyerrflag;", 230264790Sbapt " int yychar;", 231264790Sbapt " YYSTYPE yyval;", 232264790Sbapt " YYSTYPE yylval;", 233264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 234264790Sbapt " YYLTYPE yyloc; /* position returned by actions */", 235264790Sbapt " YYLTYPE yylloc; /* position from the lexer */", 236264790Sbapt "#endif", 237264790Sbapt "", 238264790Sbapt " /* variables for the parser stack */", 239264790Sbapt " YYSTACKDATA yystack;", 240264790Sbapt#if defined(YYBTYACC) 241264790Sbapt "#if YYBTYACC", 242264790Sbapt "", 243264790Sbapt " /* Current parser state */", 244264790Sbapt " static YYParseState *yyps = 0;", 245264790Sbapt "", 246264790Sbapt " /* yypath != NULL: do the full parse, starting at *yypath parser state. */", 247264790Sbapt " static YYParseState *yypath = 0;", 248264790Sbapt "", 249264790Sbapt " /* Base of the lexical value queue */", 250264790Sbapt " static YYSTYPE *yylvals = 0;", 251264790Sbapt "", 252264790Sbapt " /* Current position at lexical value queue */", 253264790Sbapt " static YYSTYPE *yylvp = 0;", 254264790Sbapt "", 255264790Sbapt " /* End position of lexical value queue */", 256264790Sbapt " static YYSTYPE *yylve = 0;", 257264790Sbapt "", 258264790Sbapt " /* The last allocated position at the lexical value queue */", 259264790Sbapt " static YYSTYPE *yylvlim = 0;", 260264790Sbapt "", 261264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 262264790Sbapt " /* Base of the lexical position queue */", 263264790Sbapt " static YYLTYPE *yylpsns = 0;", 264264790Sbapt "", 265264790Sbapt " /* Current position at lexical position queue */", 266264790Sbapt " static YYLTYPE *yylpp = 0;", 267264790Sbapt "", 268264790Sbapt " /* End position of lexical position queue */", 269264790Sbapt " static YYLTYPE *yylpe = 0;", 270264790Sbapt "", 271264790Sbapt " /* The last allocated position at the lexical position queue */", 272264790Sbapt " static YYLTYPE *yylplim = 0;", 273264790Sbapt "#endif", 274264790Sbapt "", 275264790Sbapt " /* Current position at lexical token queue */", 276264790Sbapt " static short *yylexp = 0;", 277264790Sbapt "", 278264790Sbapt " static short *yylexemes = 0;", 279264790Sbapt "#endif /* YYBTYACC */", 280272955Srodrigc#endif /* defined(YYBTYACC) */ 281264790Sbapt 0 282264790Sbapt}; 283264790Sbapt 284264790Sbaptconst char *const body_1[] = 285264790Sbapt{ 286264790Sbapt "", 287264790Sbapt "/* For use in generated program */", 288264790Sbapt "#define yydepth (int)(yystack.s_mark - yystack.s_base)", 289264790Sbapt#if defined(YYBTYACC) 290264790Sbapt "#if YYBTYACC", 291264790Sbapt "#define yytrial (yyps->save)", 292264790Sbapt "#endif /* YYBTYACC */", 293272955Srodrigc#endif /* defined(YYBTYACC) */ 294264790Sbapt "", 295264790Sbapt "#if YYDEBUG", 296272955Srodrigc "#include <stdio.h> /* needed for printf */", 297264790Sbapt "#endif", 298264790Sbapt "", 299272955Srodrigc "#include <stdlib.h> /* needed for malloc, etc */", 300272955Srodrigc "#include <string.h> /* needed for memset */", 301264790Sbapt "", 302264790Sbapt "/* allocate initial stack or double stack size, up to YYMAXDEPTH */", 303264790Sbapt "static int yygrowstack(YYSTACKDATA *data)", 304264790Sbapt "{", 305264790Sbapt " int i;", 306264790Sbapt " unsigned newsize;", 307264790Sbapt " short *newss;", 308264790Sbapt " YYSTYPE *newvs;", 309264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 310264790Sbapt " YYLTYPE *newps;", 311264790Sbapt "#endif", 312264790Sbapt "", 313264790Sbapt " if ((newsize = data->stacksize) == 0)", 314264790Sbapt " newsize = YYINITSTACKSIZE;", 315264790Sbapt " else if (newsize >= YYMAXDEPTH)", 316264790Sbapt " return YYENOMEM;", 317264790Sbapt " else if ((newsize *= 2) > YYMAXDEPTH)", 318264790Sbapt " newsize = YYMAXDEPTH;", 319264790Sbapt "", 320264790Sbapt " i = (int) (data->s_mark - data->s_base);", 321264790Sbapt " newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));", 322264790Sbapt " if (newss == 0)", 323264790Sbapt " return YYENOMEM;", 324264790Sbapt "", 325264790Sbapt " data->s_base = newss;", 326264790Sbapt " data->s_mark = newss + i;", 327264790Sbapt "", 328264790Sbapt " newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));", 329264790Sbapt " if (newvs == 0)", 330264790Sbapt " return YYENOMEM;", 331264790Sbapt "", 332264790Sbapt " data->l_base = newvs;", 333264790Sbapt " data->l_mark = newvs + i;", 334264790Sbapt "", 335264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 336264790Sbapt " newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps));", 337264790Sbapt " if (newps == 0)", 338264790Sbapt " return YYENOMEM;", 339264790Sbapt "", 340264790Sbapt " data->p_base = newps;", 341264790Sbapt " data->p_mark = newps + i;", 342264790Sbapt "#endif", 343264790Sbapt "", 344264790Sbapt " data->stacksize = newsize;", 345264790Sbapt " data->s_last = data->s_base + newsize - 1;", 346264790Sbapt "", 347264790Sbapt "#if YYDEBUG", 348264790Sbapt " if (yydebug)", 349264790Sbapt " fprintf(stderr, \"%sdebug: stack size increased to %d\\n\", YYPREFIX, newsize);", 350264790Sbapt "#endif", 351264790Sbapt " return 0;", 352264790Sbapt "}", 353264790Sbapt "", 354264790Sbapt "#if YYPURE || defined(YY_NO_LEAKS)", 355264790Sbapt "static void yyfreestack(YYSTACKDATA *data)", 356264790Sbapt "{", 357264790Sbapt " free(data->s_base);", 358264790Sbapt " free(data->l_base);", 359264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 360264790Sbapt " free(data->p_base);", 361264790Sbapt "#endif", 362264790Sbapt " memset(data, 0, sizeof(*data));", 363264790Sbapt "}", 364264790Sbapt "#else", 365264790Sbapt "#define yyfreestack(data) /* nothing */", 366264790Sbapt "#endif /* YYPURE || defined(YY_NO_LEAKS) */", 367264790Sbapt#if defined(YYBTYACC) 368264790Sbapt "#if YYBTYACC", 369264790Sbapt "", 370264790Sbapt "static YYParseState *", 371264790Sbapt "yyNewState(unsigned size)", 372264790Sbapt "{", 373264790Sbapt " YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState));", 374264790Sbapt " if (p == NULL) return NULL;", 375264790Sbapt "", 376264790Sbapt " p->yystack.stacksize = size;", 377264790Sbapt " if (size == 0)", 378264790Sbapt " {", 379264790Sbapt " p->yystack.s_base = NULL;", 380264790Sbapt " p->yystack.l_base = NULL;", 381264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 382264790Sbapt " p->yystack.p_base = NULL;", 383264790Sbapt "#endif", 384264790Sbapt " return p;", 385264790Sbapt " }", 386264790Sbapt " p->yystack.s_base = (short *) malloc(size * sizeof(short));", 387264790Sbapt " if (p->yystack.s_base == NULL) return NULL;", 388264790Sbapt " p->yystack.l_base = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));", 389264790Sbapt " if (p->yystack.l_base == NULL) return NULL;", 390264790Sbapt " memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE));", 391264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 392264790Sbapt " p->yystack.p_base = (YYLTYPE *) malloc(size * sizeof(YYLTYPE));", 393264790Sbapt " if (p->yystack.p_base == NULL) return NULL;", 394264790Sbapt " memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE));", 395264790Sbapt "#endif", 396264790Sbapt "", 397264790Sbapt " return p;", 398264790Sbapt "}", 399264790Sbapt "", 400264790Sbapt "static void", 401264790Sbapt "yyFreeState(YYParseState *p)", 402264790Sbapt "{", 403264790Sbapt " yyfreestack(&p->yystack);", 404264790Sbapt " free(p);", 405264790Sbapt "}", 406264790Sbapt "#endif /* YYBTYACC */", 407272955Srodrigc#endif /* defined(YYBTYACC) */ 408264790Sbapt "", 409264790Sbapt "#define YYABORT goto yyabort", 410264790Sbapt "#define YYREJECT goto yyabort", 411264790Sbapt "#define YYACCEPT goto yyaccept", 412264790Sbapt "#define YYERROR goto yyerrlab", 413264790Sbapt#if defined(YYBTYACC) 414264790Sbapt "#if YYBTYACC", 415264790Sbapt "#define YYVALID do { if (yyps->save) goto yyvalid; } while(0)", 416264790Sbapt "#define YYVALID_NESTED do { if (yyps->save && \\", 417264790Sbapt " yyps->save->save == 0) goto yyvalid; } while(0)", 418264790Sbapt "#endif /* YYBTYACC */", 419272955Srodrigc#endif /* defined(YYBTYACC) */ 420264790Sbapt "", 421264790Sbapt "int", 422264790Sbapt "YYPARSE_DECL()", 423264790Sbapt "{", 424264790Sbapt 0 425264790Sbapt}; 426264790Sbapt 427264790Sbaptconst char *const body_2[] = 428264790Sbapt{ 429264790Sbapt " int yym, yyn, yystate, yyresult;", 430264790Sbapt#if defined(YYBTYACC) 431264790Sbapt "#if YYBTYACC", 432264790Sbapt " int yynewerrflag;", 433264790Sbapt " YYParseState *yyerrctx = NULL;", 434264790Sbapt "#endif /* YYBTYACC */", 435272955Srodrigc#endif /* defined(YYBTYACC) */ 436264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 437264790Sbapt " YYLTYPE yyerror_loc_range[2]; /* position of error start & end */", 438264790Sbapt "#endif", 439264790Sbapt "#if YYDEBUG", 440264790Sbapt " const char *yys;", 441264790Sbapt "", 442264790Sbapt " if ((yys = getenv(\"YYDEBUG\")) != 0)", 443264790Sbapt " {", 444264790Sbapt " yyn = *yys;", 445264790Sbapt " if (yyn >= '0' && yyn <= '9')", 446264790Sbapt " yydebug = yyn - '0';", 447264790Sbapt " }", 448264790Sbapt " if (yydebug)", 449264790Sbapt " fprintf(stderr, \"%sdebug[<# of symbols on state stack>]\\n\", YYPREFIX);", 450264790Sbapt "#endif", 451264790Sbapt "", 452264790Sbapt#if defined(YYBTYACC) 453264790Sbapt "#if YYBTYACC", 454264790Sbapt " yyps = yyNewState(0); if (yyps == 0) goto yyenomem;", 455264790Sbapt " yyps->save = 0;", 456264790Sbapt "#endif /* YYBTYACC */", 457272955Srodrigc#endif /* defined(YYBTYACC) */ 458264790Sbapt " yynerrs = 0;", 459264790Sbapt " yyerrflag = 0;", 460264790Sbapt " yychar = YYEMPTY;", 461264790Sbapt " yystate = 0;", 462264790Sbapt "", 463264790Sbapt "#if YYPURE", 464264790Sbapt " memset(&yystack, 0, sizeof(yystack));", 465264790Sbapt "#endif", 466264790Sbapt "", 467264790Sbapt " if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;", 468264790Sbapt " yystack.s_mark = yystack.s_base;", 469264790Sbapt " yystack.l_mark = yystack.l_base;", 470264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 471264790Sbapt " yystack.p_mark = yystack.p_base;", 472264790Sbapt "#endif", 473264790Sbapt " yystate = 0;", 474264790Sbapt " *yystack.s_mark = 0;", 475264790Sbapt "", 476264790Sbapt "yyloop:", 477264790Sbapt " if ((yyn = yydefred[yystate]) != 0) goto yyreduce;", 478264790Sbapt " if (yychar < 0)", 479264790Sbapt " {", 480264790Sbapt#if defined(YYBTYACC) 481264790Sbapt "#if YYBTYACC", 482264790Sbapt " do {", 483264790Sbapt " if (yylvp < yylve)", 484264790Sbapt " {", 485264790Sbapt " /* we're currently re-reading tokens */", 486264790Sbapt " yylval = *yylvp++;", 487264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 488264790Sbapt " yylloc = *yylpp++;", 489264790Sbapt "#endif", 490264790Sbapt " yychar = *yylexp++;", 491264790Sbapt " break;", 492264790Sbapt " }", 493264790Sbapt " if (yyps->save)", 494264790Sbapt " {", 495264790Sbapt " /* in trial mode; save scanner results for future parse attempts */", 496264790Sbapt " if (yylvp == yylvlim)", 497264790Sbapt " { /* Enlarge lexical value queue */", 498272955Srodrigc " size_t p = (size_t) (yylvp - yylvals);", 499272955Srodrigc " size_t s = (size_t) (yylvlim - yylvals);", 500264790Sbapt "", 501264790Sbapt " s += YYLVQUEUEGROWTH;", 502264790Sbapt " if ((yylexemes = (short *) realloc(yylexemes, s * sizeof(short))) == NULL) goto yyenomem;", 503264790Sbapt " if ((yylvals = (YYSTYPE *) realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;", 504264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 505264790Sbapt " if ((yylpsns = (YYLTYPE *) realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;", 506264790Sbapt "#endif", 507264790Sbapt " yylvp = yylve = yylvals + p;", 508264790Sbapt " yylvlim = yylvals + s;", 509264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 510264790Sbapt " yylpp = yylpe = yylpsns + p;", 511264790Sbapt " yylplim = yylpsns + s;", 512264790Sbapt "#endif", 513264790Sbapt " yylexp = yylexemes + p;", 514264790Sbapt " }", 515264790Sbapt " *yylexp = (short) YYLEX;", 516264790Sbapt " *yylvp++ = yylval;", 517264790Sbapt " yylve++;", 518264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 519264790Sbapt " *yylpp++ = yylloc;", 520264790Sbapt " yylpe++;", 521264790Sbapt "#endif", 522264790Sbapt " yychar = *yylexp++;", 523264790Sbapt " break;", 524264790Sbapt " }", 525264790Sbapt " /* normal operation, no conflict encountered */", 526264790Sbapt "#endif /* YYBTYACC */", 527272955Srodrigc#endif /* defined(YYBTYACC) */ 528264790Sbapt " yychar = YYLEX;", 529264790Sbapt#if defined(YYBTYACC) 530264790Sbapt "#if YYBTYACC", 531264790Sbapt " } while (0);", 532264790Sbapt "#endif /* YYBTYACC */", 533272955Srodrigc#endif /* defined(YYBTYACC) */ 534264790Sbapt " if (yychar < 0) yychar = YYEOF;", 535264790Sbapt " /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */", 536264790Sbapt "#if YYDEBUG", 537264790Sbapt " if (yydebug)", 538264790Sbapt " {", 539264790Sbapt " yys = yyname[YYTRANSLATE(yychar)];", 540264790Sbapt " fprintf(stderr, \"%s[%d]: state %d, reading token %d (%s)\",", 541264790Sbapt " YYDEBUGSTR, yydepth, yystate, yychar, yys);", 542264790Sbapt "#ifdef YYSTYPE_TOSTRING", 543264790Sbapt#if defined(YYBTYACC) 544264790Sbapt "#if YYBTYACC", 545264790Sbapt " if (!yytrial)", 546264790Sbapt "#endif /* YYBTYACC */", 547272955Srodrigc#endif /* defined(YYBTYACC) */ 548264790Sbapt " fprintf(stderr, \" <%s>\", YYSTYPE_TOSTRING(yychar, yylval));", 549264790Sbapt "#endif", 550264790Sbapt " fputc('\\n', stderr);", 551264790Sbapt " }", 552264790Sbapt "#endif", 553264790Sbapt " }", 554264790Sbapt#if defined(YYBTYACC) 555264790Sbapt "#if YYBTYACC", 556264790Sbapt "", 557264790Sbapt " /* Do we have a conflict? */", 558264790Sbapt " if (((yyn = yycindex[yystate]) != 0) && (yyn += yychar) >= 0 &&", 559264790Sbapt " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)", 560264790Sbapt " {", 561264790Sbapt " YYINT ctry;", 562264790Sbapt "", 563264790Sbapt " if (yypath)", 564264790Sbapt " {", 565264790Sbapt " YYParseState *save;", 566264790Sbapt "#if YYDEBUG", 567264790Sbapt " if (yydebug)", 568264790Sbapt " fprintf(stderr, \"%s[%d]: CONFLICT in state %d: following successful trial parse\\n\",", 569264790Sbapt " YYDEBUGSTR, yydepth, yystate);", 570264790Sbapt "#endif", 571264790Sbapt " /* Switch to the next conflict context */", 572264790Sbapt " save = yypath;", 573264790Sbapt " yypath = save->save;", 574264790Sbapt " save->save = NULL;", 575264790Sbapt " ctry = save->ctry;", 576264790Sbapt " if (save->state != yystate) YYABORT;", 577264790Sbapt " yyFreeState(save);", 578264790Sbapt "", 579264790Sbapt " }", 580264790Sbapt " else", 581264790Sbapt " {", 582264790Sbapt "", 583264790Sbapt " /* Unresolved conflict - start/continue trial parse */", 584264790Sbapt " YYParseState *save;", 585264790Sbapt "#if YYDEBUG", 586264790Sbapt " if (yydebug)", 587264790Sbapt " {", 588264790Sbapt " fprintf(stderr, \"%s[%d]: CONFLICT in state %d. \", YYDEBUGSTR, yydepth, yystate);", 589264790Sbapt " if (yyps->save)", 590264790Sbapt " fputs(\"ALREADY in conflict, continuing trial parse.\\n\", stderr);", 591264790Sbapt " else", 592264790Sbapt " fputs(\"Starting trial parse.\\n\", stderr);", 593264790Sbapt " }", 594264790Sbapt "#endif", 595264790Sbapt " save = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));", 596264790Sbapt " if (save == NULL) goto yyenomem;", 597264790Sbapt " save->save = yyps->save;", 598264790Sbapt " save->state = yystate;", 599264790Sbapt " save->errflag = yyerrflag;", 600264790Sbapt " save->yystack.s_mark = save->yystack.s_base + (yystack.s_mark - yystack.s_base);", 601272955Srodrigc " memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", 602264790Sbapt " save->yystack.l_mark = save->yystack.l_base + (yystack.l_mark - yystack.l_base);", 603272955Srodrigc " memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 604264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 605264790Sbapt " save->yystack.p_mark = save->yystack.p_base + (yystack.p_mark - yystack.p_base);", 606272955Srodrigc " memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 607264790Sbapt "#endif", 608264790Sbapt " ctry = yytable[yyn];", 609264790Sbapt " if (yyctable[ctry] == -1)", 610264790Sbapt " {", 611264790Sbapt "#if YYDEBUG", 612264790Sbapt " if (yydebug && yychar >= YYEOF)", 613264790Sbapt " fprintf(stderr, \"%s[%d]: backtracking 1 token\\n\", YYDEBUGSTR, yydepth);", 614264790Sbapt "#endif", 615264790Sbapt " ctry++;", 616264790Sbapt " }", 617264790Sbapt " save->ctry = ctry;", 618264790Sbapt " if (yyps->save == NULL)", 619264790Sbapt " {", 620264790Sbapt " /* If this is a first conflict in the stack, start saving lexemes */", 621264790Sbapt " if (!yylexemes)", 622264790Sbapt " {", 623264790Sbapt " yylexemes = (short *) malloc((YYLVQUEUEGROWTH) * sizeof(short));", 624264790Sbapt " if (yylexemes == NULL) goto yyenomem;", 625264790Sbapt " yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));", 626264790Sbapt " if (yylvals == NULL) goto yyenomem;", 627264790Sbapt " yylvlim = yylvals + YYLVQUEUEGROWTH;", 628264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 629264790Sbapt " yylpsns = (YYLTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYLTYPE));", 630264790Sbapt " if (yylpsns == NULL) goto yyenomem;", 631264790Sbapt " yylplim = yylpsns + YYLVQUEUEGROWTH;", 632264790Sbapt "#endif", 633264790Sbapt " }", 634264790Sbapt " if (yylvp == yylve)", 635264790Sbapt " {", 636264790Sbapt " yylvp = yylve = yylvals;", 637264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 638264790Sbapt " yylpp = yylpe = yylpsns;", 639264790Sbapt "#endif", 640264790Sbapt " yylexp = yylexemes;", 641264790Sbapt " if (yychar >= YYEOF)", 642264790Sbapt " {", 643264790Sbapt " *yylve++ = yylval;", 644264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 645264790Sbapt " *yylpe++ = yylloc;", 646264790Sbapt "#endif", 647264790Sbapt " *yylexp = (short) yychar;", 648264790Sbapt " yychar = YYEMPTY;", 649264790Sbapt " }", 650264790Sbapt " }", 651264790Sbapt " }", 652264790Sbapt " if (yychar >= YYEOF)", 653264790Sbapt " {", 654264790Sbapt " yylvp--;", 655264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 656264790Sbapt " yylpp--;", 657264790Sbapt "#endif", 658264790Sbapt " yylexp--;", 659264790Sbapt " yychar = YYEMPTY;", 660264790Sbapt " }", 661272955Srodrigc " save->lexeme = (int) (yylvp - yylvals);", 662264790Sbapt " yyps->save = save;", 663264790Sbapt " }", 664264790Sbapt " if (yytable[yyn] == ctry)", 665264790Sbapt " {", 666264790Sbapt "#if YYDEBUG", 667264790Sbapt " if (yydebug)", 668264790Sbapt " fprintf(stderr, \"%s[%d]: state %d, shifting to state %d\\n\",", 669264790Sbapt " YYDEBUGSTR, yydepth, yystate, yyctable[ctry]);", 670264790Sbapt "#endif", 671264790Sbapt " if (yychar < 0)", 672264790Sbapt " {", 673264790Sbapt " yylvp++;", 674264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 675264790Sbapt " yylpp++;", 676264790Sbapt "#endif", 677264790Sbapt " yylexp++;", 678264790Sbapt " }", 679264790Sbapt " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)", 680264790Sbapt " goto yyoverflow;", 681264790Sbapt " yystate = yyctable[ctry];", 682264790Sbapt " *++yystack.s_mark = (short) yystate;", 683264790Sbapt " *++yystack.l_mark = yylval;", 684264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 685264790Sbapt " *++yystack.p_mark = yylloc;", 686264790Sbapt "#endif", 687264790Sbapt " yychar = YYEMPTY;", 688264790Sbapt " if (yyerrflag > 0) --yyerrflag;", 689264790Sbapt " goto yyloop;", 690264790Sbapt " }", 691264790Sbapt " else", 692264790Sbapt " {", 693264790Sbapt " yyn = yyctable[ctry];", 694264790Sbapt " goto yyreduce;", 695264790Sbapt " }", 696264790Sbapt " } /* End of code dealing with conflicts */", 697264790Sbapt "#endif /* YYBTYACC */", 698272955Srodrigc#endif /* defined(YYBTYACC) */ 699264790Sbapt " if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&", 700264790Sbapt " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)", 701264790Sbapt " {", 702264790Sbapt "#if YYDEBUG", 703264790Sbapt " if (yydebug)", 704264790Sbapt " fprintf(stderr, \"%s[%d]: state %d, shifting to state %d\\n\",", 705264790Sbapt " YYDEBUGSTR, yydepth, yystate, yytable[yyn]);", 706264790Sbapt "#endif", 707264790Sbapt " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;", 708264790Sbapt " yystate = yytable[yyn];", 709264790Sbapt " *++yystack.s_mark = yytable[yyn];", 710264790Sbapt " *++yystack.l_mark = yylval;", 711264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 712264790Sbapt " *++yystack.p_mark = yylloc;", 713264790Sbapt "#endif", 714264790Sbapt " yychar = YYEMPTY;", 715264790Sbapt " if (yyerrflag > 0) --yyerrflag;", 716264790Sbapt " goto yyloop;", 717264790Sbapt " }", 718264790Sbapt " if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&", 719264790Sbapt " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)", 720264790Sbapt " {", 721264790Sbapt " yyn = yytable[yyn];", 722264790Sbapt " goto yyreduce;", 723264790Sbapt " }", 724264790Sbapt " if (yyerrflag != 0) goto yyinrecovery;", 725264790Sbapt#if defined(YYBTYACC) 726264790Sbapt "#if YYBTYACC", 727264790Sbapt "", 728264790Sbapt " yynewerrflag = 1;", 729264790Sbapt " goto yyerrhandler;", 730264790Sbapt " goto yyerrlab;", 731264790Sbapt "", 732264790Sbapt "yyerrlab:", 733264790Sbapt " yynewerrflag = 0;", 734264790Sbapt "yyerrhandler:", 735264790Sbapt " while (yyps->save)", 736264790Sbapt " {", 737264790Sbapt " int ctry;", 738264790Sbapt " YYParseState *save = yyps->save;", 739264790Sbapt "#if YYDEBUG", 740264790Sbapt " if (yydebug)", 741264790Sbapt " fprintf(stderr, \"%s[%d]: ERROR in state %d, CONFLICT BACKTRACKING to state %d, %d tokens\\n\",", 742264790Sbapt " YYDEBUGSTR, yydepth, yystate, yyps->save->state,", 743264790Sbapt " (int)(yylvp - yylvals - yyps->save->lexeme));", 744264790Sbapt "#endif", 745264790Sbapt " /* Memorize most forward-looking error state in case it's really an error. */", 746264790Sbapt " if (yyerrctx == NULL || yyerrctx->lexeme < yylvp - yylvals)", 747264790Sbapt " {", 748264790Sbapt " /* Free old saved error context state */", 749264790Sbapt " if (yyerrctx) yyFreeState(yyerrctx);", 750264790Sbapt " /* Create and fill out new saved error context state */", 751264790Sbapt " yyerrctx = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));", 752264790Sbapt " if (yyerrctx == NULL) goto yyenomem;", 753264790Sbapt " yyerrctx->save = yyps->save;", 754264790Sbapt " yyerrctx->state = yystate;", 755264790Sbapt " yyerrctx->errflag = yyerrflag;", 756264790Sbapt " yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);", 757272955Srodrigc " memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", 758264790Sbapt " yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);", 759272955Srodrigc " memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 760264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 761264790Sbapt " yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);", 762272955Srodrigc " memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 763264790Sbapt "#endif", 764272955Srodrigc " yyerrctx->lexeme = (int) (yylvp - yylvals);", 765264790Sbapt " }", 766264790Sbapt " yylvp = yylvals + save->lexeme;", 767264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 768264790Sbapt " yylpp = yylpsns + save->lexeme;", 769264790Sbapt "#endif", 770264790Sbapt " yylexp = yylexemes + save->lexeme;", 771264790Sbapt " yychar = YYEMPTY;", 772264790Sbapt " yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);", 773272955Srodrigc " memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", 774264790Sbapt " yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);", 775272955Srodrigc " memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 776264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 777264790Sbapt " yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);", 778272955Srodrigc " memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 779264790Sbapt "#endif", 780264790Sbapt " ctry = ++save->ctry;", 781264790Sbapt " yystate = save->state;", 782264790Sbapt " /* We tried shift, try reduce now */", 783264790Sbapt " if ((yyn = yyctable[ctry]) >= 0) goto yyreduce;", 784264790Sbapt " yyps->save = save->save;", 785264790Sbapt " save->save = NULL;", 786264790Sbapt " yyFreeState(save);", 787264790Sbapt "", 788264790Sbapt " /* Nothing left on the stack -- error */", 789264790Sbapt " if (!yyps->save)", 790264790Sbapt " {", 791264790Sbapt "#if YYDEBUG", 792264790Sbapt " if (yydebug)", 793264790Sbapt " fprintf(stderr, \"%sdebug[%d,trial]: trial parse FAILED, entering ERROR mode\\n\",", 794264790Sbapt " YYPREFIX, yydepth);", 795264790Sbapt "#endif", 796264790Sbapt " /* Restore state as it was in the most forward-advanced error */", 797264790Sbapt " yylvp = yylvals + yyerrctx->lexeme;", 798264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 799264790Sbapt " yylpp = yylpsns + yyerrctx->lexeme;", 800264790Sbapt "#endif", 801264790Sbapt " yylexp = yylexemes + yyerrctx->lexeme;", 802264790Sbapt " yychar = yylexp[-1];", 803264790Sbapt " yylval = yylvp[-1];", 804264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 805264790Sbapt " yylloc = yylpp[-1];", 806264790Sbapt "#endif", 807264790Sbapt " yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);", 808272955Srodrigc " memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", 809264790Sbapt " yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);", 810272955Srodrigc " memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 811264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 812264790Sbapt " yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);", 813272955Srodrigc " memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 814264790Sbapt "#endif", 815264790Sbapt " yystate = yyerrctx->state;", 816264790Sbapt " yyFreeState(yyerrctx);", 817264790Sbapt " yyerrctx = NULL;", 818264790Sbapt " }", 819264790Sbapt " yynewerrflag = 1;", 820264790Sbapt " }", 821264790Sbapt " if (yynewerrflag == 0) goto yyinrecovery;", 822264790Sbapt "#endif /* YYBTYACC */", 823272955Srodrigc#endif /* defined(YYBTYACC) */ 824264790Sbapt "", 825264790Sbapt " YYERROR_CALL(\"syntax error\");", 826264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 827264790Sbapt " yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */", 828264790Sbapt "#endif", 829264790Sbapt "", 830264790Sbapt "#if !YYBTYACC", 831264790Sbapt " goto yyerrlab;", 832264790Sbapt "yyerrlab:", 833264790Sbapt "#endif", 834264790Sbapt " ++yynerrs;", 835264790Sbapt "", 836264790Sbapt "yyinrecovery:", 837264790Sbapt " if (yyerrflag < 3)", 838264790Sbapt " {", 839264790Sbapt " yyerrflag = 3;", 840264790Sbapt " for (;;)", 841264790Sbapt " {", 842264790Sbapt " if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&", 843264790Sbapt " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)", 844264790Sbapt " {", 845264790Sbapt "#if YYDEBUG", 846264790Sbapt " if (yydebug)", 847264790Sbapt " fprintf(stderr, \"%s[%d]: state %d, error recovery shifting to state %d\\n\",", 848264790Sbapt " YYDEBUGSTR, yydepth, *yystack.s_mark, yytable[yyn]);", 849264790Sbapt "#endif", 850264790Sbapt " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;", 851264790Sbapt " yystate = yytable[yyn];", 852264790Sbapt " *++yystack.s_mark = yytable[yyn];", 853264790Sbapt " *++yystack.l_mark = yylval;", 854264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 855264790Sbapt " /* lookahead position is error end position */", 856264790Sbapt " yyerror_loc_range[1] = yylloc;", 857264790Sbapt " YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */", 858264790Sbapt " *++yystack.p_mark = yyloc;", 859264790Sbapt "#endif", 860264790Sbapt " goto yyloop;", 861264790Sbapt " }", 862264790Sbapt " else", 863264790Sbapt " {", 864264790Sbapt "#if YYDEBUG", 865264790Sbapt " if (yydebug)", 866264790Sbapt " fprintf(stderr, \"%s[%d]: error recovery discarding state %d\\n\",", 867264790Sbapt " YYDEBUGSTR, yydepth, *yystack.s_mark);", 868264790Sbapt "#endif", 869264790Sbapt " if (yystack.s_mark <= yystack.s_base) goto yyabort;", 870264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 871264790Sbapt " /* the current TOS position is the error start position */", 872264790Sbapt " yyerror_loc_range[0] = *yystack.p_mark;", 873264790Sbapt "#endif", 874264790Sbapt "#if defined(YYDESTRUCT_CALL)", 875264790Sbapt#if defined(YYBTYACC) 876264790Sbapt "#if YYBTYACC", 877264790Sbapt " if (!yytrial)", 878264790Sbapt "#endif /* YYBTYACC */", 879272955Srodrigc#endif /* defined(YYBTYACC) */ 880264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 881264790Sbapt " YYDESTRUCT_CALL(\"error: discarding state\",", 882264790Sbapt " yystos[*yystack.s_mark], yystack.l_mark, yystack.p_mark);", 883264790Sbapt "#else", 884264790Sbapt " YYDESTRUCT_CALL(\"error: discarding state\",", 885264790Sbapt " yystos[*yystack.s_mark], yystack.l_mark);", 886264790Sbapt "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 887264790Sbapt "#endif /* defined(YYDESTRUCT_CALL) */", 888264790Sbapt " --yystack.s_mark;", 889264790Sbapt " --yystack.l_mark;", 890264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 891264790Sbapt " --yystack.p_mark;", 892264790Sbapt "#endif", 893264790Sbapt " }", 894264790Sbapt " }", 895264790Sbapt " }", 896264790Sbapt " else", 897264790Sbapt " {", 898264790Sbapt " if (yychar == YYEOF) goto yyabort;", 899264790Sbapt "#if YYDEBUG", 900264790Sbapt " if (yydebug)", 901264790Sbapt " {", 902264790Sbapt " yys = yyname[YYTRANSLATE(yychar)];", 903264790Sbapt " fprintf(stderr, \"%s[%d]: state %d, error recovery discarding token %d (%s)\\n\",", 904264790Sbapt " YYDEBUGSTR, yydepth, yystate, yychar, yys);", 905264790Sbapt " }", 906264790Sbapt "#endif", 907264790Sbapt "#if defined(YYDESTRUCT_CALL)", 908264790Sbapt#if defined(YYBTYACC) 909264790Sbapt "#if YYBTYACC", 910264790Sbapt " if (!yytrial)", 911264790Sbapt "#endif /* YYBTYACC */", 912272955Srodrigc#endif /* defined(YYBTYACC) */ 913264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 914264790Sbapt " YYDESTRUCT_CALL(\"error: discarding token\", yychar, &yylval, &yylloc);", 915264790Sbapt "#else", 916264790Sbapt " YYDESTRUCT_CALL(\"error: discarding token\", yychar, &yylval);", 917264790Sbapt "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 918264790Sbapt "#endif /* defined(YYDESTRUCT_CALL) */", 919264790Sbapt " yychar = YYEMPTY;", 920264790Sbapt " goto yyloop;", 921264790Sbapt " }", 922264790Sbapt "", 923264790Sbapt "yyreduce:", 924264790Sbapt " yym = yylen[yyn];", 925264790Sbapt "#if YYDEBUG", 926264790Sbapt " if (yydebug)", 927264790Sbapt " {", 928264790Sbapt " fprintf(stderr, \"%s[%d]: state %d, reducing by rule %d (%s)\",", 929264790Sbapt " YYDEBUGSTR, yydepth, yystate, yyn, yyrule[yyn]);", 930264790Sbapt "#ifdef YYSTYPE_TOSTRING", 931264790Sbapt#if defined(YYBTYACC) 932264790Sbapt "#if YYBTYACC", 933264790Sbapt " if (!yytrial)", 934264790Sbapt "#endif /* YYBTYACC */", 935272955Srodrigc#endif /* defined(YYBTYACC) */ 936264790Sbapt " if (yym > 0)", 937264790Sbapt " {", 938264790Sbapt " int i;", 939264790Sbapt " fputc('<', stderr);", 940264790Sbapt " for (i = yym; i > 0; i--)", 941264790Sbapt " {", 942264790Sbapt " if (i != yym) fputs(\", \", stderr);", 943264790Sbapt " fputs(YYSTYPE_TOSTRING(yystos[yystack.s_mark[1-i]],", 944264790Sbapt " yystack.l_mark[1-i]), stderr);", 945264790Sbapt " }", 946264790Sbapt " fputc('>', stderr);", 947264790Sbapt " }", 948264790Sbapt "#endif", 949264790Sbapt " fputc('\\n', stderr);", 950264790Sbapt " }", 951264790Sbapt "#endif", 952264790Sbapt " if (yym > 0)", 953264790Sbapt " yyval = yystack.l_mark[1-yym];", 954264790Sbapt " else", 955264790Sbapt " memset(&yyval, 0, sizeof yyval);", 956264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 957264790Sbapt "", 958264790Sbapt " /* Perform position reduction */", 959264790Sbapt " memset(&yyloc, 0, sizeof(yyloc));", 960264790Sbapt#if defined(YYBTYACC) 961264790Sbapt "#if YYBTYACC", 962264790Sbapt " if (!yytrial)", 963264790Sbapt "#endif /* YYBTYACC */", 964272955Srodrigc#endif /* defined(YYBTYACC) */ 965264790Sbapt " {", 966264790Sbapt " YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);", 967264790Sbapt " /* just in case YYERROR is invoked within the action, save", 968264790Sbapt " the start of the rhs as the error start position */", 969264790Sbapt " yyerror_loc_range[0] = yystack.p_mark[1-yym];", 970264790Sbapt " }", 971264790Sbapt "#endif", 972264790Sbapt "", 973264790Sbapt " switch (yyn)", 974264790Sbapt " {", 975264790Sbapt 0 976264790Sbapt}; 977264790Sbapt 978264790Sbaptconst char *const trailer[] = 979264790Sbapt{ 980264790Sbapt " default:", 981264790Sbapt " break;", 982264790Sbapt " }", 983264790Sbapt " yystack.s_mark -= yym;", 984264790Sbapt " yystate = *yystack.s_mark;", 985264790Sbapt " yystack.l_mark -= yym;", 986264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 987264790Sbapt " yystack.p_mark -= yym;", 988264790Sbapt "#endif", 989264790Sbapt " yym = yylhs[yyn];", 990264790Sbapt " if (yystate == 0 && yym == 0)", 991264790Sbapt " {", 992264790Sbapt "#if YYDEBUG", 993264790Sbapt " if (yydebug)", 994264790Sbapt " {", 995264790Sbapt " fprintf(stderr, \"%s[%d]: after reduction, \", YYDEBUGSTR, yydepth);", 996264790Sbapt "#ifdef YYSTYPE_TOSTRING", 997264790Sbapt#if defined(YYBTYACC) 998264790Sbapt "#if YYBTYACC", 999264790Sbapt " if (!yytrial)", 1000264790Sbapt "#endif /* YYBTYACC */", 1001272955Srodrigc#endif /* defined(YYBTYACC) */ 1002264790Sbapt " fprintf(stderr, \"result is <%s>, \", YYSTYPE_TOSTRING(yystos[YYFINAL], yyval));", 1003264790Sbapt "#endif", 1004264790Sbapt " fprintf(stderr, \"shifting from state 0 to final state %d\\n\", YYFINAL);", 1005264790Sbapt " }", 1006264790Sbapt "#endif", 1007264790Sbapt " yystate = YYFINAL;", 1008264790Sbapt " *++yystack.s_mark = YYFINAL;", 1009264790Sbapt " *++yystack.l_mark = yyval;", 1010264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1011264790Sbapt " *++yystack.p_mark = yyloc;", 1012264790Sbapt "#endif", 1013264790Sbapt " if (yychar < 0)", 1014264790Sbapt " {", 1015264790Sbapt#if defined(YYBTYACC) 1016264790Sbapt "#if YYBTYACC", 1017264790Sbapt " do {", 1018264790Sbapt " if (yylvp < yylve)", 1019264790Sbapt " {", 1020264790Sbapt " /* we're currently re-reading tokens */", 1021264790Sbapt " yylval = *yylvp++;", 1022264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1023264790Sbapt " yylloc = *yylpp++;", 1024264790Sbapt "#endif", 1025264790Sbapt " yychar = *yylexp++;", 1026264790Sbapt " break;", 1027264790Sbapt " }", 1028264790Sbapt " if (yyps->save)", 1029264790Sbapt " {", 1030264790Sbapt " /* in trial mode; save scanner results for future parse attempts */", 1031264790Sbapt " if (yylvp == yylvlim)", 1032264790Sbapt " { /* Enlarge lexical value queue */", 1033272955Srodrigc " size_t p = (size_t) (yylvp - yylvals);", 1034272955Srodrigc " size_t s = (size_t) (yylvlim - yylvals);", 1035264790Sbapt "", 1036264790Sbapt " s += YYLVQUEUEGROWTH;", 1037264790Sbapt " if ((yylexemes = (short *) realloc(yylexemes, s * sizeof(short))) == NULL)", 1038264790Sbapt " goto yyenomem;", 1039264790Sbapt " if ((yylvals = (YYSTYPE *) realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)", 1040264790Sbapt " goto yyenomem;", 1041264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1042264790Sbapt " if ((yylpsns = (YYLTYPE *) realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)", 1043264790Sbapt " goto yyenomem;", 1044264790Sbapt "#endif", 1045264790Sbapt " yylvp = yylve = yylvals + p;", 1046264790Sbapt " yylvlim = yylvals + s;", 1047264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1048264790Sbapt " yylpp = yylpe = yylpsns + p;", 1049264790Sbapt " yylplim = yylpsns + s;", 1050264790Sbapt "#endif", 1051264790Sbapt " yylexp = yylexemes + p;", 1052264790Sbapt " }", 1053264790Sbapt " *yylexp = (short) YYLEX;", 1054264790Sbapt " *yylvp++ = yylval;", 1055264790Sbapt " yylve++;", 1056264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1057264790Sbapt " *yylpp++ = yylloc;", 1058264790Sbapt " yylpe++;", 1059264790Sbapt "#endif", 1060264790Sbapt " yychar = *yylexp++;", 1061264790Sbapt " break;", 1062264790Sbapt " }", 1063264790Sbapt " /* normal operation, no conflict encountered */", 1064264790Sbapt "#endif /* YYBTYACC */", 1065272955Srodrigc#endif /* defined(YYBTYACC) */ 1066264790Sbapt " yychar = YYLEX;", 1067264790Sbapt#if defined(YYBTYACC) 1068264790Sbapt "#if YYBTYACC", 1069264790Sbapt " } while (0);", 1070264790Sbapt "#endif /* YYBTYACC */", 1071272955Srodrigc#endif /* defined(YYBTYACC) */ 1072264790Sbapt " if (yychar < 0) yychar = YYEOF;", 1073264790Sbapt " /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */", 1074264790Sbapt "#if YYDEBUG", 1075264790Sbapt " if (yydebug)", 1076264790Sbapt " {", 1077264790Sbapt " yys = yyname[YYTRANSLATE(yychar)];", 1078264790Sbapt " fprintf(stderr, \"%s[%d]: state %d, reading %d (%s)\\n\",", 1079264790Sbapt " YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);", 1080264790Sbapt " }", 1081264790Sbapt "#endif", 1082264790Sbapt " }", 1083264790Sbapt " if (yychar == YYEOF) goto yyaccept;", 1084264790Sbapt " goto yyloop;", 1085264790Sbapt " }", 1086264790Sbapt " if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&", 1087264790Sbapt " yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)", 1088264790Sbapt " yystate = yytable[yyn];", 1089264790Sbapt " else", 1090264790Sbapt " yystate = yydgoto[yym];", 1091264790Sbapt "#if YYDEBUG", 1092264790Sbapt " if (yydebug)", 1093264790Sbapt " {", 1094264790Sbapt " fprintf(stderr, \"%s[%d]: after reduction, \", YYDEBUGSTR, yydepth);", 1095264790Sbapt "#ifdef YYSTYPE_TOSTRING", 1096264790Sbapt#if defined(YYBTYACC) 1097264790Sbapt "#if YYBTYACC", 1098264790Sbapt " if (!yytrial)", 1099264790Sbapt "#endif /* YYBTYACC */", 1100272955Srodrigc#endif /* defined(YYBTYACC) */ 1101264790Sbapt " fprintf(stderr, \"result is <%s>, \", YYSTYPE_TOSTRING(yystos[yystate], yyval));", 1102264790Sbapt "#endif", 1103264790Sbapt " fprintf(stderr, \"shifting from state %d to state %d\\n\", *yystack.s_mark, yystate);", 1104264790Sbapt " }", 1105264790Sbapt "#endif", 1106264790Sbapt " if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;", 1107264790Sbapt " *++yystack.s_mark = (short) yystate;", 1108264790Sbapt " *++yystack.l_mark = yyval;", 1109264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1110264790Sbapt " *++yystack.p_mark = yyloc;", 1111264790Sbapt "#endif", 1112264790Sbapt " goto yyloop;", 1113264790Sbapt#if defined(YYBTYACC) 1114264790Sbapt "#if YYBTYACC", 1115264790Sbapt "", 1116264790Sbapt " /* Reduction declares that this path is valid. Set yypath and do a full parse */", 1117264790Sbapt "yyvalid:", 1118264790Sbapt " if (yypath) YYABORT;", 1119264790Sbapt " while (yyps->save)", 1120264790Sbapt " {", 1121264790Sbapt " YYParseState *save = yyps->save;", 1122264790Sbapt " yyps->save = save->save;", 1123264790Sbapt " save->save = yypath;", 1124264790Sbapt " yypath = save;", 1125264790Sbapt " }", 1126264790Sbapt "#if YYDEBUG", 1127264790Sbapt " if (yydebug)", 1128264790Sbapt " fprintf(stderr, \"%s[%d]: state %d, CONFLICT trial successful, backtracking to state %d, %d tokens\\n\",", 1129264790Sbapt " YYDEBUGSTR, yydepth, yystate, yypath->state, (int)(yylvp - yylvals - yypath->lexeme));", 1130264790Sbapt "#endif", 1131264790Sbapt " if (yyerrctx)", 1132264790Sbapt " {", 1133264790Sbapt " yyFreeState(yyerrctx);", 1134264790Sbapt " yyerrctx = NULL;", 1135264790Sbapt " }", 1136264790Sbapt " yylvp = yylvals + yypath->lexeme;", 1137264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1138264790Sbapt " yylpp = yylpsns + yypath->lexeme;", 1139264790Sbapt "#endif", 1140264790Sbapt " yylexp = yylexemes + yypath->lexeme;", 1141264790Sbapt " yychar = YYEMPTY;", 1142264790Sbapt " yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);", 1143272955Srodrigc " memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));", 1144264790Sbapt " yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);", 1145272955Srodrigc " memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));", 1146264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1147264790Sbapt " yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);", 1148272955Srodrigc " memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));", 1149264790Sbapt "#endif", 1150264790Sbapt " yystate = yypath->state;", 1151264790Sbapt " goto yyloop;", 1152264790Sbapt "#endif /* YYBTYACC */", 1153272955Srodrigc#endif /* defined(YYBTYACC) */ 1154264790Sbapt "", 1155264790Sbapt "yyoverflow:", 1156264790Sbapt " YYERROR_CALL(\"yacc stack overflow\");", 1157264790Sbapt#if defined(YYBTYACC) 1158264790Sbapt "#if YYBTYACC", 1159264790Sbapt " goto yyabort_nomem;", 1160264790Sbapt "yyenomem:", 1161264790Sbapt " YYERROR_CALL(\"memory exhausted\");", 1162264790Sbapt "yyabort_nomem:", 1163264790Sbapt "#endif /* YYBTYACC */", 1164272955Srodrigc#endif /* defined(YYBTYACC) */ 1165264790Sbapt " yyresult = 2;", 1166264790Sbapt " goto yyreturn;", 1167264790Sbapt "", 1168264790Sbapt "yyabort:", 1169264790Sbapt " yyresult = 1;", 1170264790Sbapt " goto yyreturn;", 1171264790Sbapt "", 1172264790Sbapt "yyaccept:", 1173264790Sbapt#if defined(YYBTYACC) 1174264790Sbapt "#if YYBTYACC", 1175264790Sbapt " if (yyps->save) goto yyvalid;", 1176264790Sbapt "#endif /* YYBTYACC */", 1177272955Srodrigc#endif /* defined(YYBTYACC) */ 1178264790Sbapt " yyresult = 0;", 1179264790Sbapt "", 1180264790Sbapt "yyreturn:", 1181264790Sbapt "#if defined(YYDESTRUCT_CALL)", 1182264790Sbapt " if (yychar != YYEOF && yychar != YYEMPTY)", 1183264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1184264790Sbapt " YYDESTRUCT_CALL(\"cleanup: discarding token\", yychar, &yylval, &yylloc);", 1185264790Sbapt "#else", 1186264790Sbapt " YYDESTRUCT_CALL(\"cleanup: discarding token\", yychar, &yylval);", 1187264790Sbapt "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 1188264790Sbapt "", 1189264790Sbapt " {", 1190264790Sbapt " YYSTYPE *pv;", 1191264790Sbapt "#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)", 1192264790Sbapt " YYLTYPE *pp;", 1193264790Sbapt "", 1194264790Sbapt " for (pv = yystack.l_base, pp = yystack.p_base; pv <= yystack.l_mark; ++pv, ++pp)", 1195264790Sbapt " YYDESTRUCT_CALL(\"cleanup: discarding state\",", 1196264790Sbapt " yystos[*(yystack.s_base + (pv - yystack.l_base))], pv, pp);", 1197264790Sbapt "#else", 1198264790Sbapt " for (pv = yystack.l_base; pv <= yystack.l_mark; ++pv)", 1199264790Sbapt " YYDESTRUCT_CALL(\"cleanup: discarding state\",", 1200264790Sbapt " yystos[*(yystack.s_base + (pv - yystack.l_base))], pv);", 1201264790Sbapt "#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */", 1202264790Sbapt " }", 1203264790Sbapt "#endif /* defined(YYDESTRUCT_CALL) */", 1204264790Sbapt "", 1205264790Sbapt#if defined(YYBTYACC) 1206264790Sbapt "#if YYBTYACC", 1207264790Sbapt " if (yyerrctx)", 1208264790Sbapt " {", 1209264790Sbapt " yyFreeState(yyerrctx);", 1210264790Sbapt " yyerrctx = NULL;", 1211264790Sbapt " }", 1212264790Sbapt " while (yyps)", 1213264790Sbapt " {", 1214264790Sbapt " YYParseState *save = yyps;", 1215264790Sbapt " yyps = save->save;", 1216264790Sbapt " save->save = NULL;", 1217264790Sbapt " yyFreeState(save);", 1218264790Sbapt " }", 1219264790Sbapt " while (yypath)", 1220264790Sbapt " {", 1221264790Sbapt " YYParseState *save = yypath;", 1222264790Sbapt " yypath = save->save;", 1223264790Sbapt " save->save = NULL;", 1224264790Sbapt " yyFreeState(save);", 1225264790Sbapt " }", 1226264790Sbapt "#endif /* YYBTYACC */", 1227272955Srodrigc#endif /* defined(YYBTYACC) */ 1228264790Sbapt " yyfreestack(&yystack);", 1229264790Sbapt " return (yyresult);", 1230264790Sbapt "}", 1231264790Sbapt 0 1232264790Sbapt}; 1233264790Sbapt 1234264790Sbaptvoid 1235264790Sbaptwrite_section(FILE * fp, const char *const section[]) 1236264790Sbapt{ 1237264790Sbapt int i; 1238264790Sbapt const char *s; 1239264790Sbapt 1240264790Sbapt for (i = 0; (s = section[i]) != 0; ++i) 1241264790Sbapt { 1242264790Sbapt if (fp == code_file) 1243264790Sbapt ++outline; 1244264790Sbapt fprintf(fp, "%s\n", s); 1245264790Sbapt } 1246264790Sbapt} 1247