=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/yacc/skeleton.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- src/usr.bin/yacc/skeleton.c 2014/02/21 02:18:00 1.32 +++ src/usr.bin/yacc/skeleton.c 2014/03/07 19:34:49 1.33 @@ -1,4 +1,4 @@ -/* $OpenBSD: skeleton.c,v 1.32 2014/02/21 02:18:00 tedu Exp $ */ +/* $OpenBSD: skeleton.c,v 1.33 2014/03/07 19:34:49 tedu Exp $ */ /* $NetBSD: skeleton.c,v 1.10 1996/03/25 00:36:18 mrg Exp $ */ /* @@ -49,364 +49,359 @@ char *banner[] = { - "#include ", - "#include ", - "#define YYBYACC 1", - "#define YYMAJOR 1", - "#define YYMINOR 9", - "#define YYLEX yylex()", - "#define YYEMPTY -1", - "#define yyclearin (yychar=(YYEMPTY))", - "#define yyerrok (yyerrflag=0)", - "#define YYRECOVERING() (yyerrflag!=0)", - NULL + "#include ", + "#include ", + "#define YYBYACC 1", + "#define YYMAJOR 1", + "#define YYMINOR 9", + "#define YYLEX yylex()", + "#define YYEMPTY -1", + "#define yyclearin (yychar=(YYEMPTY))", + "#define yyerrok (yyerrflag=0)", + "#define YYRECOVERING() (yyerrflag!=0)", + NULL }; char *tables[] = { - "extern const short yylhs[];", - "extern const short yylen[];", - "extern const short yydefred[];", - "extern const short yydgoto[];", - "extern const short yysindex[];", - "extern const short yyrindex[];", - "extern const short yygindex[];", - "extern const short yytable[];", - "extern const short yycheck[];", - "#if YYDEBUG", - "extern const char *const yyname[];", - "extern const char *const yyrule[];", - "#endif", - NULL + "extern const short yylhs[];", + "extern const short yylen[];", + "extern const short yydefred[];", + "extern const short yydgoto[];", + "extern const short yysindex[];", + "extern const short yyrindex[];", + "extern const short yygindex[];", + "extern const short yytable[];", + "extern const short yycheck[];", + "#if YYDEBUG", + "extern const char *const yyname[];", + "extern const char *const yyrule[];", + "#endif", + NULL }; char *header[] = { - "#ifdef YYSTACKSIZE", - "#undef YYMAXDEPTH", - "#define YYMAXDEPTH YYSTACKSIZE", - "#else", - "#ifdef YYMAXDEPTH", - "#define YYSTACKSIZE YYMAXDEPTH", - "#else", - "#define YYSTACKSIZE 10000", - "#define YYMAXDEPTH 10000", - "#endif", - "#endif", - "#define YYINITSTACKSIZE 200", - "/* LINTUSED */", - "int yydebug;", - "int yynerrs;", - "int yyerrflag;", - "int yychar;", - "short *yyssp;", - "YYSTYPE *yyvsp;", - "YYSTYPE yyval;", - "YYSTYPE yylval;", - "short *yyss;", - "short *yysslim;", - "YYSTYPE *yyvs;", - "unsigned int yystacksize;", - NULL + "#ifdef YYSTACKSIZE", + "#undef YYMAXDEPTH", + "#define YYMAXDEPTH YYSTACKSIZE", + "#else", + "#ifdef YYMAXDEPTH", + "#define YYSTACKSIZE YYMAXDEPTH", + "#else", + "#define YYSTACKSIZE 10000", + "#define YYMAXDEPTH 10000", + "#endif", + "#endif", + "#define YYINITSTACKSIZE 200", + "/* LINTUSED */", + "int yydebug;", + "int yynerrs;", + "int yyerrflag;", + "int yychar;", + "short *yyssp;", + "YYSTYPE *yyvsp;", + "YYSTYPE yyval;", + "YYSTYPE yylval;", + "short *yyss;", + "short *yysslim;", + "YYSTYPE *yyvs;", + "unsigned int yystacksize;", + NULL }; char *body[] = { - "/* allocate initial stack or double stack size, up to YYMAXDEPTH */", - "static int yygrowstack(void)", - "{", - " unsigned int newsize;", - " long sslen;", - " short *newss;", - " YYSTYPE *newvs;", - "", - " if ((newsize = yystacksize) == 0)", - " newsize = YYINITSTACKSIZE;", - " else if (newsize >= YYMAXDEPTH)", - " return -1;", - " else if ((newsize *= 2) > YYMAXDEPTH)", - " newsize = YYMAXDEPTH;", - " sslen = yyssp - yyss;", - "#ifdef SIZE_MAX", - "#define YY_SIZE_MAX SIZE_MAX", - "#else", - "#define YY_SIZE_MAX 0xffffffffU", - "#endif", - " if (newsize && YY_SIZE_MAX / newsize < sizeof *newss)", - " goto bail;", - " newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :", - " (short *)malloc(newsize * sizeof *newss); /* overflow check above */", - " if (newss == NULL)", - " goto bail;", - " yyss = newss;", - " yyssp = newss + sslen;", - " if (newsize && YY_SIZE_MAX / newsize < sizeof *newvs)", - " goto bail;", - " newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :", - " (YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */", - " if (newvs == NULL)", - " goto bail;", - " yyvs = newvs;", - " yyvsp = newvs + sslen;", - " yystacksize = newsize;", - " yysslim = yyss + newsize - 1;", - " return 0;", - "bail:", - " if (yyss)", - " free(yyss);", - " if (yyvs)", - " free(yyvs);", - " yyss = yyssp = NULL;", - " yyvs = yyvsp = NULL;", - " yystacksize = 0;", - " return -1;", - "}", - "", - "#define YYABORT goto yyabort", - "#define YYREJECT goto yyabort", - "#define YYACCEPT goto yyaccept", - "#define YYERROR goto yyerrlab", - "int", - "yyparse(void)", - "{", - " int yym, yyn, yystate;", - "#if YYDEBUG", - " const char *yys;", - "", - " if ((yys = getenv(\"YYDEBUG\")))", - " {", - " yyn = *yys;", - " if (yyn >= '0' && yyn <= '9')", - " yydebug = yyn - '0';", - " }", - "#endif /* YYDEBUG */", - "", - " yynerrs = 0;", - " yyerrflag = 0;", - " yychar = (-1);", - "", - " if (yyss == NULL && yygrowstack()) goto yyoverflow;", - " yyssp = yyss;", - " yyvsp = yyvs;", - " *yyssp = yystate = 0;", - "", - "yyloop:", - " if ((yyn = yydefred[yystate]) != 0) goto yyreduce;", - " if (yychar < 0)", - " {", - " if ((yychar = yylex()) < 0) yychar = 0;", - "#if YYDEBUG", - " if (yydebug)", - " {", - " yys = 0;", - " if (yychar <= YYMAXTOKEN) yys = yyname[yychar];", - " if (!yys) yys = \"illegal-symbol\";", - " printf(\"%sdebug: state %d, reading %d (%s)\\n\",", - " YYPREFIX, yystate, yychar, yys);", - " }", - "#endif", - " }", - " if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&", - " yyn <= YYTABLESIZE && yycheck[yyn] == yychar)", - " {", - "#if YYDEBUG", - " if (yydebug)", - " printf(\"%sdebug: state %d, shifting to state %d\\n\",", - " YYPREFIX, yystate, yytable[yyn]);", - "#endif", - " if (yyssp >= yysslim && yygrowstack())", - " {", - " goto yyoverflow;", - " }", - " *++yyssp = yystate = yytable[yyn];", - " *++yyvsp = yylval;", - " yychar = (-1);", - " if (yyerrflag > 0) --yyerrflag;", - " goto yyloop;", - " }", - " if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&", - " yyn <= YYTABLESIZE && yycheck[yyn] == yychar)", - " {", - " yyn = yytable[yyn];", - " goto yyreduce;", - " }", - " if (yyerrflag) goto yyinrecovery;", - "#if defined(lint) || defined(__GNUC__)", - " goto yynewerror;", - "#endif", - "yynewerror:", - " yyerror(\"syntax error\");", - "#if defined(lint) || defined(__GNUC__)", - " goto yyerrlab;", - "#endif", - "yyerrlab:", - " ++yynerrs;", - "yyinrecovery:", - " if (yyerrflag < 3)", - " {", - " yyerrflag = 3;", - " for (;;)", - " {", - " if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&", - " yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)", - " {", - "#if YYDEBUG", - " if (yydebug)", - " printf(\"%sdebug: state %d, error recovery shifting\\", - " to state %d\\n\", YYPREFIX, *yyssp, yytable[yyn]);", - "#endif", - " if (yyssp >= yysslim && yygrowstack())", - " {", - " goto yyoverflow;", - " }", - " *++yyssp = yystate = yytable[yyn];", - " *++yyvsp = yylval;", - " goto yyloop;", - " }", - " else", - " {", - "#if YYDEBUG", - " if (yydebug)", - " printf(\"%sdebug: error recovery discarding state %d\ + "/* allocate initial stack or double stack size, up to YYMAXDEPTH */", + "static int yygrowstack(void)", + "{", + " unsigned int newsize;", + " long sslen;", + " short *newss;", + " YYSTYPE *newvs;", + "", + " if ((newsize = yystacksize) == 0)", + " newsize = YYINITSTACKSIZE;", + " else if (newsize >= YYMAXDEPTH)", + " return -1;", + " else if ((newsize *= 2) > YYMAXDEPTH)", + " newsize = YYMAXDEPTH;", + " sslen = yyssp - yyss;", + "#ifdef SIZE_MAX", + "#define YY_SIZE_MAX SIZE_MAX", + "#else", + "#define YY_SIZE_MAX 0xffffffffU", + "#endif", + " if (newsize && YY_SIZE_MAX / newsize < sizeof *newss)", + " goto bail;", + " newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :", + " (short *)malloc(newsize * sizeof *newss); /* overflow check above */", + " if (newss == NULL)", + " goto bail;", + " yyss = newss;", + " yyssp = newss + sslen;", + " if (newsize && YY_SIZE_MAX / newsize < sizeof *newvs)", + " goto bail;", + " newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :", + " (YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */", + " if (newvs == NULL)", + " goto bail;", + " yyvs = newvs;", + " yyvsp = newvs + sslen;", + " yystacksize = newsize;", + " yysslim = yyss + newsize - 1;", + " return 0;", + "bail:", + " if (yyss)", + " free(yyss);", + " if (yyvs)", + " free(yyvs);", + " yyss = yyssp = NULL;", + " yyvs = yyvsp = NULL;", + " yystacksize = 0;", + " return -1;", + "}", + "", + "#define YYABORT goto yyabort", + "#define YYREJECT goto yyabort", + "#define YYACCEPT goto yyaccept", + "#define YYERROR goto yyerrlab", + "int", + "yyparse(void)", + "{", + " int yym, yyn, yystate;", + "#if YYDEBUG", + " const char *yys;", + "", + " if ((yys = getenv(\"YYDEBUG\")))", + " {", + " yyn = *yys;", + " if (yyn >= '0' && yyn <= '9')", + " yydebug = yyn - '0';", + " }", + "#endif /* YYDEBUG */", + "", + " yynerrs = 0;", + " yyerrflag = 0;", + " yychar = (-1);", + "", + " if (yyss == NULL && yygrowstack()) goto yyoverflow;", + " yyssp = yyss;", + " yyvsp = yyvs;", + " *yyssp = yystate = 0;", + "", + "yyloop:", + " if ((yyn = yydefred[yystate]) != 0) goto yyreduce;", + " if (yychar < 0)", + " {", + " if ((yychar = yylex()) < 0) yychar = 0;", + "#if YYDEBUG", + " if (yydebug)", + " {", + " yys = 0;", + " if (yychar <= YYMAXTOKEN) yys = yyname[yychar];", + " if (!yys) yys = \"illegal-symbol\";", + " printf(\"%sdebug: state %d, reading %d (%s)\\n\",", + " YYPREFIX, yystate, yychar, yys);", + " }", + "#endif", + " }", + " if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&", + " yyn <= YYTABLESIZE && yycheck[yyn] == yychar)", + " {", + "#if YYDEBUG", + " if (yydebug)", + " printf(\"%sdebug: state %d, shifting to state %d\\n\",", + " YYPREFIX, yystate, yytable[yyn]);", + "#endif", + " if (yyssp >= yysslim && yygrowstack())", + " {", + " goto yyoverflow;", + " }", + " *++yyssp = yystate = yytable[yyn];", + " *++yyvsp = yylval;", + " yychar = (-1);", + " if (yyerrflag > 0) --yyerrflag;", + " goto yyloop;", + " }", + " if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&", + " yyn <= YYTABLESIZE && yycheck[yyn] == yychar)", + " {", + " yyn = yytable[yyn];", + " goto yyreduce;", + " }", + " if (yyerrflag) goto yyinrecovery;", + "#if defined(lint) || defined(__GNUC__)", + " goto yynewerror;", + "#endif", + "yynewerror:", + " yyerror(\"syntax error\");", + "#if defined(lint) || defined(__GNUC__)", + " goto yyerrlab;", + "#endif", + "yyerrlab:", + " ++yynerrs;", + "yyinrecovery:", + " if (yyerrflag < 3)", + " {", + " yyerrflag = 3;", + " for (;;)", + " {", + " if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&", + " yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)", + " {", + "#if YYDEBUG", + " if (yydebug)", + " printf(\"%sdebug: state %d, error recovery shifting\\", + " to state %d\\n\", YYPREFIX, *yyssp, yytable[yyn]);", + "#endif", + " if (yyssp >= yysslim && yygrowstack())", + " {", + " goto yyoverflow;", + " }", + " *++yyssp = yystate = yytable[yyn];", + " *++yyvsp = yylval;", + " goto yyloop;", + " }", + " else", + " {", + "#if YYDEBUG", + " if (yydebug)", + " printf(\"%sdebug: error recovery discarding state %d\ \\n\",", - " YYPREFIX, *yyssp);", - "#endif", - " if (yyssp <= yyss) goto yyabort;", - " --yyssp;", - " --yyvsp;", - " }", - " }", - " }", - " else", - " {", - " if (yychar == 0) goto yyabort;", - "#if YYDEBUG", - " if (yydebug)", - " {", - " yys = 0;", - " if (yychar <= YYMAXTOKEN) yys = yyname[yychar];", - " if (!yys) yys = \"illegal-symbol\";", - " printf(\"%sdebug: state %d, error recovery discards token %d\ + " YYPREFIX, *yyssp);", + "#endif", + " if (yyssp <= yyss) goto yyabort;", + " --yyssp;", + " --yyvsp;", + " }", + " }", + " }", + " else", + " {", + " if (yychar == 0) goto yyabort;", + "#if YYDEBUG", + " if (yydebug)", + " {", + " yys = 0;", + " if (yychar <= YYMAXTOKEN) yys = yyname[yychar];", + " if (!yys) yys = \"illegal-symbol\";", + " printf(\"%sdebug: state %d, error recovery discards token %d\ (%s)\\n\",", - " YYPREFIX, yystate, yychar, yys);", - " }", - "#endif", - " yychar = (-1);", - " goto yyloop;", - " }", - "yyreduce:", - "#if YYDEBUG", - " if (yydebug)", - " printf(\"%sdebug: state %d, reducing by rule %d (%s)\\n\",", - " YYPREFIX, yystate, yyn, yyrule[yyn]);", - "#endif", - " yym = yylen[yyn];", - " if (yym)", - " yyval = yyvsp[1-yym];", - " else", - " memset(&yyval, 0, sizeof yyval);", - " switch (yyn)", - " {", - NULL + " YYPREFIX, yystate, yychar, yys);", + " }", + "#endif", + " yychar = (-1);", + " goto yyloop;", + " }", + "yyreduce:", + "#if YYDEBUG", + " if (yydebug)", + " printf(\"%sdebug: state %d, reducing by rule %d (%s)\\n\",", + " YYPREFIX, yystate, yyn, yyrule[yyn]);", + "#endif", + " yym = yylen[yyn];", + " if (yym)", + " yyval = yyvsp[1-yym];", + " else", + " memset(&yyval, 0, sizeof yyval);", + " switch (yyn)", + " {", + NULL }; char *trailer[] = { - " }", - " yyssp -= yym;", - " yystate = *yyssp;", - " yyvsp -= yym;", - " yym = yylhs[yyn];", - " if (yystate == 0 && yym == 0)", - " {", - "#if YYDEBUG", - " if (yydebug)", - " printf(\"%sdebug: after reduction, shifting from state 0 to\\", - " state %d\\n\", YYPREFIX, YYFINAL);", - "#endif", - " yystate = YYFINAL;", - " *++yyssp = YYFINAL;", - " *++yyvsp = yyval;", - " if (yychar < 0)", - " {", - " if ((yychar = yylex()) < 0) yychar = 0;", - "#if YYDEBUG", - " if (yydebug)", - " {", - " yys = 0;", - " if (yychar <= YYMAXTOKEN) yys = yyname[yychar];", - " if (!yys) yys = \"illegal-symbol\";", - " printf(\"%sdebug: state %d, reading %d (%s)\\n\",", - " YYPREFIX, YYFINAL, yychar, yys);", - " }", - "#endif", - " }", - " if (yychar == 0) goto yyaccept;", - " goto yyloop;", - " }", - " if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&", - " yyn <= YYTABLESIZE && yycheck[yyn] == yystate)", - " yystate = yytable[yyn];", - " else", - " yystate = yydgoto[yym];", - "#if YYDEBUG", - " if (yydebug)", - " printf(\"%sdebug: after reduction, shifting from state %d \\", - "to state %d\\n\", YYPREFIX, *yyssp, yystate);", - "#endif", - " if (yyssp >= yysslim && yygrowstack())", - " {", - " goto yyoverflow;", - " }", - " *++yyssp = yystate;", - " *++yyvsp = yyval;", - " goto yyloop;", - "yyoverflow:", - " yyerror(\"yacc stack overflow\");", - "yyabort:", - " if (yyss)", - " free(yyss);", - " if (yyvs)", - " free(yyvs);", - " yyss = yyssp = NULL;", - " yyvs = yyvsp = NULL;", - " yystacksize = 0;", - " return (1);", - "yyaccept:", - " if (yyss)", - " free(yyss);", - " if (yyvs)", - " free(yyvs);", - " yyss = yyssp = NULL;", - " yyvs = yyvsp = NULL;", - " yystacksize = 0;", - " return (0);", - "}", - NULL + " }", + " yyssp -= yym;", + " yystate = *yyssp;", + " yyvsp -= yym;", + " yym = yylhs[yyn];", + " if (yystate == 0 && yym == 0)", + " {", + "#if YYDEBUG", + " if (yydebug)", + " printf(\"%sdebug: after reduction, shifting from state 0 to\\", + " state %d\\n\", YYPREFIX, YYFINAL);", + "#endif", + " yystate = YYFINAL;", + " *++yyssp = YYFINAL;", + " *++yyvsp = yyval;", + " if (yychar < 0)", + " {", + " if ((yychar = yylex()) < 0) yychar = 0;", + "#if YYDEBUG", + " if (yydebug)", + " {", + " yys = 0;", + " if (yychar <= YYMAXTOKEN) yys = yyname[yychar];", + " if (!yys) yys = \"illegal-symbol\";", + " printf(\"%sdebug: state %d, reading %d (%s)\\n\",", + " YYPREFIX, YYFINAL, yychar, yys);", + " }", + "#endif", + " }", + " if (yychar == 0) goto yyaccept;", + " goto yyloop;", + " }", + " if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&", + " yyn <= YYTABLESIZE && yycheck[yyn] == yystate)", + " yystate = yytable[yyn];", + " else", + " yystate = yydgoto[yym];", + "#if YYDEBUG", + " if (yydebug)", + " printf(\"%sdebug: after reduction, shifting from state %d \\", + "to state %d\\n\", YYPREFIX, *yyssp, yystate);", + "#endif", + " if (yyssp >= yysslim && yygrowstack())", + " {", + " goto yyoverflow;", + " }", + " *++yyssp = yystate;", + " *++yyvsp = yyval;", + " goto yyloop;", + "yyoverflow:", + " yyerror(\"yacc stack overflow\");", + "yyabort:", + " if (yyss)", + " free(yyss);", + " if (yyvs)", + " free(yyvs);", + " yyss = yyssp = NULL;", + " yyvs = yyvsp = NULL;", + " yystacksize = 0;", + " return (1);", + "yyaccept:", + " if (yyss)", + " free(yyss);", + " if (yyvs)", + " free(yyvs);", + " yyss = yyssp = NULL;", + " yyvs = yyvsp = NULL;", + " yystacksize = 0;", + " return (0);", + "}", + NULL }; void write_section(char *section[]) { - int c; - int i; - char *s; - FILE *f; + int c; + int i; + char *s; + FILE *f; - f = code_file; - for (i = 0; (s = section[i]); ++i) - { - ++outline; - while ((c = *s)) - { - putc(c, f); - ++s; + f = code_file; + for (i = 0; (s = section[i]); ++i) { + ++outline; + fputs(s, f); + putc('\n', f); } - putc('\n', f); - } }