Date: Mon, 20 Feb 2023 22:37:31 GMT From: =?utf-8?Q?Dag-Erling=20Sm=C3=B8rgrav?= <des@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 8e022d3cdea1 - main - byacc: Update to 20230201. Message-ID: <202302202237.31KMbViu096747@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=8e022d3cdea10ee1039a632f670c27fd93f65625 commit 8e022d3cdea10ee1039a632f670c27fd93f65625 Merge: b16a37eda8b1 cba5e8978cf6 Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2023-02-20 22:35:32 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2023-02-20 22:35:32 +0000 byacc: Update to 20230201. Note that this enables the backtracking extension, which we had previously left disabled. PR: 244149, 269425 Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D38421 contrib/byacc/CHANGES | 2950 +++++++++++++++- contrib/byacc/MANIFEST | 102 +- contrib/byacc/VERSION | 2 +- contrib/byacc/aclocal.m4 | 493 ++- contrib/byacc/btyaccpar.c | 4 +- contrib/byacc/btyaccpar.skel | 4 +- contrib/byacc/closure.c | 36 +- contrib/byacc/config.guess | 1203 ++++--- contrib/byacc/config.sub | 655 ++-- contrib/byacc/config_h.in | 6 + contrib/byacc/configure | 3730 ++++++++++++-------- contrib/byacc/configure.in | 24 +- contrib/byacc/defs.h | 136 +- contrib/byacc/graph.c | 12 +- contrib/byacc/install-sh | 671 ++-- contrib/byacc/lalr.c | 41 +- contrib/byacc/lr0.c | 36 +- contrib/byacc/main.c | 153 +- contrib/byacc/makefile.in | 12 +- contrib/byacc/mkpar.c | 30 +- contrib/byacc/output.c | 101 +- contrib/byacc/package/byacc.spec | 74 +- contrib/byacc/package/debian/changelog | 103 + contrib/byacc/package/debian/compat | 1 - contrib/byacc/package/debian/control | 29 +- contrib/byacc/package/debian/copyright | 115 +- contrib/byacc/package/debian/docs | 4 - contrib/byacc/package/debian/postinst | 15 - contrib/byacc/package/debian/prerm | 12 - contrib/byacc/package/debian/rules | 148 +- contrib/byacc/package/debian/watch | 22 +- contrib/byacc/package/mingw-byacc.spec | 45 +- contrib/byacc/package/pkgsrc/Makefile | 14 +- contrib/byacc/reader.c | 211 +- contrib/byacc/test/btyacc/big_b.error | 11 + contrib/byacc/test/btyacc/big_l.error | 11 + contrib/byacc/test/btyacc/btyacc_calc1.tab.c | 36 +- contrib/byacc/test/btyacc/btyacc_calc1.tab.h | 2 +- contrib/byacc/test/btyacc/btyacc_demo.tab.c | 176 +- contrib/byacc/test/btyacc/btyacc_demo.tab.h | 2 +- contrib/byacc/test/btyacc/btyacc_destroy1.tab.c | 21 +- contrib/byacc/test/btyacc/btyacc_destroy1.tab.h | 2 +- contrib/byacc/test/btyacc/btyacc_destroy2.tab.c | 21 +- contrib/byacc/test/btyacc/btyacc_destroy2.tab.h | 2 +- contrib/byacc/test/btyacc/btyacc_destroy3.tab.c | 21 +- contrib/byacc/test/btyacc/btyacc_destroy3.tab.h | 2 +- contrib/byacc/test/btyacc/calc.tab.c | 23 +- contrib/byacc/test/btyacc/calc1.tab.c | 35 +- contrib/byacc/test/btyacc/calc1.tab.h | 2 +- contrib/byacc/test/btyacc/calc2.tab.c | 23 +- contrib/byacc/test/btyacc/calc3.tab.c | 23 +- contrib/byacc/test/btyacc/calc_code_all.tab.c | 23 +- contrib/byacc/test/btyacc/calc_code_default.tab.c | 23 +- contrib/byacc/test/btyacc/calc_code_imports.tab.c | 23 +- contrib/byacc/test/btyacc/calc_code_provides.tab.c | 23 +- contrib/byacc/test/btyacc/calc_code_requires.tab.c | 23 +- contrib/byacc/test/btyacc/calc_code_top.tab.c | 23 +- contrib/byacc/test/btyacc/code_calc.code.c | 23 +- contrib/byacc/test/btyacc/code_error.code.c | 6 +- contrib/byacc/test/btyacc/defines1.calc.c | 23 +- contrib/byacc/test/btyacc/defines2.calc.c | 23 +- contrib/byacc/test/btyacc/defines3.calc.c | 23 +- contrib/byacc/test/btyacc/empty.tab.c | 6 +- contrib/byacc/test/btyacc/err_inherit1.tab.c | 4 +- contrib/byacc/test/btyacc/err_inherit2.tab.c | 4 +- contrib/byacc/test/btyacc/err_inherit3.tab.c | 29 +- contrib/byacc/test/btyacc/err_inherit3.tab.h | 2 +- contrib/byacc/test/btyacc/err_inherit4.tab.c | 27 +- contrib/byacc/test/btyacc/err_inherit4.tab.h | 2 +- contrib/byacc/test/btyacc/err_inherit5.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax1.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax10.tab.c | 6 +- contrib/byacc/test/btyacc/err_syntax11.tab.c | 6 +- contrib/byacc/test/btyacc/err_syntax12.tab.c | 6 +- contrib/byacc/test/btyacc/err_syntax13.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax14.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax15.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax16.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax17.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax18.tab.c | 9 +- contrib/byacc/test/btyacc/err_syntax19.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax2.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax20.tab.c | 9 +- contrib/byacc/test/btyacc/err_syntax21.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax22.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax23.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax24.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax25.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax26.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax27.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax3.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax4.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax5.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax6.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax7.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax7a.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax7b.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax8.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax8a.tab.c | 4 +- contrib/byacc/test/btyacc/err_syntax9.tab.c | 4 +- contrib/byacc/test/btyacc/error.tab.c | 6 +- contrib/byacc/test/btyacc/expr.oxout.tab.c | 114 +- contrib/byacc/test/btyacc/expr.oxout.tab.h | 10 +- contrib/byacc/test/btyacc/grammar.tab.c | 90 +- contrib/byacc/test/btyacc/help.error | 11 + contrib/byacc/test/btyacc/inherit0.tab.c | 19 +- contrib/byacc/test/btyacc/inherit1.tab.c | 21 +- contrib/byacc/test/btyacc/inherit1.tab.h | 2 +- contrib/byacc/test/btyacc/inherit2.tab.c | 28 +- contrib/byacc/test/btyacc/inherit2.tab.h | 2 +- contrib/byacc/test/btyacc/no_b_opt.error | 11 + contrib/byacc/test/btyacc/no_output2.error | 11 + contrib/byacc/test/btyacc/no_p_opt.error | 11 + contrib/byacc/test/btyacc/nostdin.error | 11 + contrib/byacc/test/btyacc/ok_syntax1.tab.c | 25 +- contrib/byacc/test/btyacc/ok_syntax1.tab.h | 2 +- contrib/byacc/test/btyacc/pure_calc.tab.c | 23 +- contrib/byacc/test/btyacc/pure_error.tab.c | 6 +- contrib/byacc/test/btyacc/quote_calc-s.tab.c | 23 +- contrib/byacc/test/btyacc/quote_calc.tab.c | 23 +- contrib/byacc/test/btyacc/quote_calc2-s.tab.c | 23 +- contrib/byacc/test/btyacc/quote_calc2.tab.c | 23 +- contrib/byacc/test/btyacc/quote_calc3-s.tab.c | 23 +- contrib/byacc/test/btyacc/quote_calc3.tab.c | 23 +- contrib/byacc/test/btyacc/quote_calc4-s.tab.c | 23 +- contrib/byacc/test/btyacc/quote_calc4.tab.c | 23 +- contrib/byacc/test/btyacc/rename_debug.c | 6 +- contrib/byacc/test/btyacc/stdin1.calc.c | 23 +- contrib/byacc/test/btyacc/stdin2.calc.c | 23 +- contrib/byacc/test/btyacc/varsyntax_calc1.tab.c | 35 +- contrib/byacc/test/btyacc/varsyntax_calc1.tab.h | 2 +- contrib/byacc/test/expr.oxout.y | 18 +- contrib/byacc/test/run_lint.sh | 11 +- contrib/byacc/test/run_make.sh | 39 +- contrib/byacc/test/run_test.sh | 69 +- contrib/byacc/test/yacc/big_b.error | 11 + contrib/byacc/test/yacc/big_l.error | 11 + contrib/byacc/test/yacc/calc.tab.c | 25 +- contrib/byacc/test/yacc/calc1.tab.c | 37 +- contrib/byacc/test/yacc/calc1.tab.h | 2 +- contrib/byacc/test/yacc/calc2.tab.c | 25 +- contrib/byacc/test/yacc/calc3.tab.c | 25 +- contrib/byacc/test/yacc/calc_code_all.tab.c | 25 +- contrib/byacc/test/yacc/calc_code_default.tab.c | 25 +- contrib/byacc/test/yacc/calc_code_imports.tab.c | 25 +- contrib/byacc/test/yacc/calc_code_provides.tab.c | 25 +- contrib/byacc/test/yacc/calc_code_requires.tab.c | 25 +- contrib/byacc/test/yacc/calc_code_top.tab.c | 25 +- contrib/byacc/test/yacc/code_calc.code.c | 25 +- contrib/byacc/test/yacc/code_error.code.c | 8 +- contrib/byacc/test/yacc/defines1.calc.c | 25 +- contrib/byacc/test/yacc/defines2.calc.c | 25 +- contrib/byacc/test/yacc/defines3.calc.c | 25 +- contrib/byacc/test/yacc/empty.tab.c | 8 +- contrib/byacc/test/yacc/err_syntax1.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax10.tab.c | 8 +- contrib/byacc/test/yacc/err_syntax11.tab.c | 8 +- contrib/byacc/test/yacc/err_syntax12.tab.c | 8 +- contrib/byacc/test/yacc/err_syntax13.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax14.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax15.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax16.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax17.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax18.tab.c | 11 +- contrib/byacc/test/yacc/err_syntax19.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax2.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax20.tab.c | 11 +- contrib/byacc/test/yacc/err_syntax21.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax22.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax23.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax24.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax25.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax26.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax27.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax3.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax4.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax5.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax6.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax7.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax7a.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax7b.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax8.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax8a.tab.c | 4 +- contrib/byacc/test/yacc/err_syntax9.tab.c | 4 +- contrib/byacc/test/yacc/error.tab.c | 8 +- contrib/byacc/test/yacc/expr.oxout.tab.c | 104 +- contrib/byacc/test/yacc/expr.oxout.tab.h | 4 +- contrib/byacc/test/yacc/grammar.tab.c | 92 +- contrib/byacc/test/yacc/help.error | 11 + contrib/byacc/test/yacc/no_b_opt.error | 11 + contrib/byacc/test/yacc/no_output2.error | 11 + contrib/byacc/test/yacc/no_p_opt.error | 11 + contrib/byacc/test/yacc/nostdin.error | 11 + contrib/byacc/test/yacc/ok_syntax1.tab.c | 27 +- contrib/byacc/test/yacc/ok_syntax1.tab.h | 2 +- contrib/byacc/test/yacc/pure_calc.tab.c | 25 +- contrib/byacc/test/yacc/pure_error.tab.c | 8 +- contrib/byacc/test/yacc/quote_calc-s.tab.c | 25 +- contrib/byacc/test/yacc/quote_calc.tab.c | 25 +- contrib/byacc/test/yacc/quote_calc2-s.tab.c | 25 +- contrib/byacc/test/yacc/quote_calc2.tab.c | 25 +- contrib/byacc/test/yacc/quote_calc3-s.tab.c | 25 +- contrib/byacc/test/yacc/quote_calc3.tab.c | 25 +- contrib/byacc/test/yacc/quote_calc4-s.tab.c | 25 +- contrib/byacc/test/yacc/quote_calc4.tab.c | 25 +- contrib/byacc/test/yacc/rename_debug.c | 8 +- contrib/byacc/test/yacc/stdin1.calc.c | 25 +- contrib/byacc/test/yacc/stdin2.calc.c | 25 +- contrib/byacc/test/yacc/varsyntax_calc1.tab.c | 37 +- contrib/byacc/test/yacc/varsyntax_calc1.tab.h | 2 +- contrib/byacc/verbose.c | 64 +- contrib/byacc/warshall.c | 10 +- contrib/byacc/yacc.1 | 67 +- contrib/byacc/yaccpar.c | 6 +- contrib/byacc/yaccpar.skel | 6 +- usr.bin/yacc/config.h | 22 +- 216 files changed, 9925 insertions(+), 4290 deletions(-) diff --cc contrib/byacc/reader.c index 3bbf9a79c187,5e8ca67bc648..85d6506e0a1f --- a/contrib/byacc/reader.c +++ b/contrib/byacc/reader.c @@@ -898,9 -907,8 +907,8 @@@ copy_union(void puts_both("#ifndef YYSTYPE_IS_DECLARED\n"); puts_both("#define YYSTYPE_IS_DECLARED 1\n"); - if (!lflag) - fprintf(text_file, line_format, lineno, input_file_name); + fprintf_lineno(text_file, lineno, input_file_name); - puts_both("typedef union YYSTYPE"); + puts_both("typedef union"); depth = 0; loop: diff --cc contrib/byacc/test/btyacc/calc.tab.c index 906a4b4e04d8,000000000000..b90dc3b1c9db mode 100644,000000..100644 --- a/contrib/byacc/test/btyacc/calc.tab.c +++ b/contrib/byacc/test/btyacc/calc.tab.c @@@ -1,1474 -1,0 +1,1489 @@@ +/* 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 YYMAJOR 2 ++#define YYMINOR 0 +#define YYCHECK "yyyymmdd" + +#define YYEMPTY (-1) +#define yyclearin (yychar = YYEMPTY) +#define yyerrok (yyerrflag = 0) +#define YYRECOVERING() (yyerrflag != 0) +#define YYENOMEM (-2) +#define YYEOF 0 +#undef YYBTYACC +#define YYBTYACC 0 +#define YYDEBUGSTR YYPREFIX "debug" + +#ifndef yyparse +#define yyparse calc_parse +#endif /* yyparse */ + +#ifndef yylex +#define yylex calc_lex +#endif /* yylex */ + +#ifndef yyerror +#define yyerror calc_error +#endif /* yyerror */ + +#ifndef yychar +#define yychar calc_char +#endif /* yychar */ + +#ifndef yyval +#define yyval calc_val +#endif /* yyval */ + +#ifndef yylval +#define yylval calc_lval +#endif /* yylval */ + +#ifndef yydebug +#define yydebug calc_debug +#endif /* yydebug */ + +#ifndef yynerrs +#define yynerrs calc_nerrs +#endif /* yynerrs */ + +#ifndef yyerrflag +#define yyerrflag calc_errflag +#endif /* yyerrflag */ + +#ifndef yylhs +#define yylhs calc_lhs +#endif /* yylhs */ + +#ifndef yylen +#define yylen calc_len +#endif /* yylen */ + +#ifndef yydefred +#define yydefred calc_defred +#endif /* yydefred */ + +#ifndef yystos +#define yystos calc_stos +#endif /* yystos */ + +#ifndef yydgoto +#define yydgoto calc_dgoto +#endif /* yydgoto */ + +#ifndef yysindex +#define yysindex calc_sindex +#endif /* yysindex */ + +#ifndef yyrindex +#define yyrindex calc_rindex +#endif /* yyrindex */ + +#ifndef yygindex +#define yygindex calc_gindex +#endif /* yygindex */ + +#ifndef yytable +#define yytable calc_table +#endif /* yytable */ + +#ifndef yycheck +#define yycheck calc_check +#endif /* yycheck */ + +#ifndef yyname +#define yyname calc_name +#endif /* yyname */ + +#ifndef yyrule +#define yyrule calc_rule +#endif /* yyrule */ + +#if YYBTYACC + +#ifndef yycindex +#define yycindex calc_cindex +#endif /* yycindex */ + +#ifndef yyctable +#define yyctable calc_ctable +#endif /* yyctable */ + +#endif /* YYBTYACC */ + +#define YYPREFIX "calc_" + +#define YYPURE 0 + +#line 2 "calc.y" +# include <stdio.h> +# include <ctype.h> + +int regs[26]; +int base; + +extern int yylex(void); +static void yyerror(const char *s); + +#line 131 "calc.tab.c" + +#if ! defined(YYSTYPE) && ! defined(YYSTYPE_IS_DECLARED) +/* Default: YYSTYPE is the semantic value type. */ +typedef int YYSTYPE; +# define YYSTYPE_IS_DECLARED 1 +#endif + +/* compatibility with bison */ +#ifdef YYPARSE_PARAM +/* compatibility with FreeBSD */ +# ifdef YYPARSE_PARAM_TYPE +# define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM) +# else +# define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM) +# endif +#else +# define YYPARSE_DECL() yyparse(void) +#endif + +/* Parameters sent to lex. */ +#ifdef YYLEX_PARAM +# define YYLEX_DECL() yylex(void *YYLEX_PARAM) +# define YYLEX yylex(YYLEX_PARAM) +#else +# 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 DIGIT 257 +#define LETTER 258 +#define UMINUS 259 +#define YYERRCODE 256 +typedef int YYINT; +static const YYINT calc_lhs[] = { -1, + 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 3, +}; +static const YYINT calc_len[] = { 2, + 0, 3, 3, 1, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 1, 1, 1, 2, +}; +static const YYINT calc_defred[] = { 1, + 0, 0, 17, 0, 0, 0, 0, 0, 0, 3, + 0, 15, 14, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 18, 0, 6, 0, 0, 0, 0, 9, + 10, 11, +}; +#if defined(YYDESTRUCT_CALL) || defined(YYSTYPE_TOSTRING) +static const YYINT calc_stos[] = { 0, + 261, 256, 257, 258, 45, 40, 262, 263, 264, 10, + 61, 258, 263, 263, 10, 124, 38, 43, 45, 42, + 47, 37, 257, 263, 41, 263, 263, 263, 263, 263, + 263, 263, +}; +#endif /* YYDESTRUCT_CALL || YYSTYPE_TOSTRING */ +static const YYINT calc_dgoto[] = { 1, + 7, 8, 9, +}; +static const YYINT calc_sindex[] = { 0, + -40, -7, 0, -55, -38, -38, 1, -29, -247, 0, + -38, 0, 0, 22, 0, -38, -38, -38, -38, -38, + -38, -38, 0, -29, 0, 51, 60, -20, -20, 0, + 0, 0, +}; +static const YYINT calc_rindex[] = { 0, + 0, 0, 0, 2, 0, 0, 0, 9, -9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 0, -6, 14, 5, 13, 0, + 0, 0, +}; +#if YYBTYACC +static const YYINT calc_cindex[] = { 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, +}; +#endif +static const YYINT calc_gindex[] = { 0, + 0, 65, 0, +}; +#define YYTABLESIZE 220 +static const YYINT calc_table[] = { 6, + 16, 6, 10, 13, 5, 11, 5, 22, 17, 23, + 15, 15, 20, 18, 7, 19, 22, 21, 4, 5, + 0, 20, 8, 12, 0, 0, 21, 16, 16, 0, + 0, 16, 16, 16, 13, 16, 0, 16, 15, 15, + 0, 0, 7, 15, 15, 7, 15, 7, 15, 7, + 8, 12, 0, 8, 12, 8, 0, 8, 22, 17, + 0, 0, 25, 20, 18, 0, 19, 0, 21, 13, + 14, 0, 0, 0, 0, 24, 0, 0, 0, 0, + 26, 27, 28, 29, 30, 31, 32, 22, 17, 0, + 0, 0, 20, 18, 16, 19, 22, 21, 0, 0, + 0, 20, 18, 0, 19, 0, 21, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 13, 0, 0, + 0, 0, 0, 0, 0, 15, 0, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 8, 12, 0, 0, + 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 3, 4, 3, 12, +}; +static const YYINT calc_check[] = { 40, + 10, 40, 10, 10, 45, 61, 45, 37, 38, 257, + 10, 10, 42, 43, 10, 45, 37, 47, 10, 10, + -1, 42, 10, 10, -1, -1, 47, 37, 38, -1, + -1, 41, 42, 43, 41, 45, -1, 47, 37, 38, + -1, -1, 38, 42, 43, 41, 45, 43, 47, 45, + 38, 38, -1, 41, 41, 43, -1, 45, 37, 38, + -1, -1, 41, 42, 43, -1, 45, -1, 47, 5, + 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, + 16, 17, 18, 19, 20, 21, 22, 37, 38, -1, + -1, -1, 42, 43, 124, 45, 37, 47, -1, -1, + -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, + -1, -1, -1, -1, 124, -1, -1, 124, -1, -1, + -1, -1, -1, -1, -1, 124, -1, -1, 124, -1, + -1, -1, -1, -1, -1, -1, 124, 124, -1, -1, + -1, -1, -1, -1, -1, 124, -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, 256, 257, 258, 257, 258, +}; +#if YYBTYACC +static const YYINT calc_ctable[] = { -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, -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, +}; +#endif +#define YYFINAL 1 +#ifndef YYDEBUG +#define YYDEBUG 0 +#endif +#define YYMAXTOKEN 259 +#define YYUNDFTOKEN 265 +#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a)) +#if YYDEBUG +static const char *const calc_name[] = { + +"$end",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0, +0,0,0,"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'|'",0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,"error","DIGIT","LETTER","UMINUS","$accept","list","stat","expr","number", +"illegal-symbol", +}; +static const char *const calc_rule[] = { +"$accept : list", +"list :", +"list : list stat '\\n'", +"list : list error '\\n'", +"stat : expr", +"stat : LETTER '=' expr", +"expr : '(' expr ')'", +"expr : expr '+' expr", +"expr : expr '-' expr", +"expr : expr '*' expr", +"expr : expr '/' expr", +"expr : expr '%' expr", +"expr : expr '&' expr", +"expr : expr '|' expr", +"expr : '-' expr", +"expr : LETTER", +"expr : number", +"number : DIGIT", +"number : number DIGIT", + +}; +#endif + +#if YYDEBUG +int yydebug; +#endif + +int yyerrflag; +int yychar; +YYSTYPE yyval; +YYSTYPE yylval; +int yynerrs; + +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) +YYLTYPE yyloc; /* position returned by actions */ +YYLTYPE yylloc; /* position from the lexer */ +#endif + +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) +#ifndef YYLLOC_DEFAULT +#define YYLLOC_DEFAULT(loc, rhs, n) \ +do \ +{ \ + if (n == 0) \ + { \ + (loc).first_line = YYRHSLOC(rhs, 0).last_line; \ + (loc).first_column = YYRHSLOC(rhs, 0).last_column; \ + (loc).last_line = YYRHSLOC(rhs, 0).last_line; \ + (loc).last_column = YYRHSLOC(rhs, 0).last_column; \ + } \ + else \ + { \ + (loc).first_line = YYRHSLOC(rhs, 1).first_line; \ + (loc).first_column = YYRHSLOC(rhs, 1).first_column; \ + (loc).last_line = YYRHSLOC(rhs, n).last_line; \ + (loc).last_column = YYRHSLOC(rhs, n).last_column; \ + } \ +} while (0) +#endif /* YYLLOC_DEFAULT */ +#endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */ +#if YYBTYACC + +#ifndef YYLVQUEUEGROWTH +#define YYLVQUEUEGROWTH 32 +#endif +#endif /* YYBTYACC */ + +/* define the initial stack-sizes */ +#ifdef YYSTACKSIZE +#undef YYMAXDEPTH +#define YYMAXDEPTH YYSTACKSIZE +#else +#ifdef YYMAXDEPTH +#define YYSTACKSIZE YYMAXDEPTH +#else +#define YYSTACKSIZE 10000 +#define YYMAXDEPTH 10000 +#endif +#endif + +#ifndef YYINITSTACKSIZE +#define YYINITSTACKSIZE 200 +#endif + +typedef struct { + unsigned stacksize; + YYINT *s_base; + YYINT *s_mark; + YYINT *s_last; + YYSTYPE *l_base; + YYSTYPE *l_mark; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYLTYPE *p_base; + YYLTYPE *p_mark; +#endif +} YYSTACKDATA; +#if YYBTYACC + +struct YYParseState_s +{ + struct YYParseState_s *save; /* Previously saved parser state */ + YYSTACKDATA yystack; /* saved parser stack */ + int state; /* saved parser state */ + int errflag; /* saved error recovery status */ + int lexeme; /* saved index of the conflict lexeme in the lexical queue */ + YYINT ctry; /* saved index in yyctable[] for this conflict */ +}; +typedef struct YYParseState_s YYParseState; +#endif /* YYBTYACC */ +/* variables for the parser stack */ +static YYSTACKDATA yystack; +#if YYBTYACC + +/* Current parser state */ +static YYParseState *yyps = 0; + +/* yypath != NULL: do the full parse, starting at *yypath parser state. */ +static YYParseState *yypath = 0; + +/* Base of the lexical value queue */ +static YYSTYPE *yylvals = 0; + +/* Current position at lexical value queue */ +static YYSTYPE *yylvp = 0; + +/* End position of lexical value queue */ +static YYSTYPE *yylve = 0; + +/* The last allocated position at the lexical value queue */ +static YYSTYPE *yylvlim = 0; + +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) +/* Base of the lexical position queue */ +static YYLTYPE *yylpsns = 0; + +/* Current position at lexical position queue */ +static YYLTYPE *yylpp = 0; + +/* End position of lexical position queue */ +static YYLTYPE *yylpe = 0; + +/* The last allocated position at the lexical position queue */ +static YYLTYPE *yylplim = 0; +#endif + +/* Current position at lexical token queue */ +static YYINT *yylexp = 0; + +static YYINT *yylexemes = 0; +#endif /* YYBTYACC */ +#line 66 "calc.y" + /* start of programs */ + +int +main (void) +{ + while(!feof(stdin)) { + yyparse(); + } + return 0; +} + +static void +yyerror(const char *s) +{ + fprintf(stderr, "%s\n", s); +} + +int +yylex(void) +{ + /* lexical analysis routine */ + /* returns LETTER for a lower case letter, yylval = 0 through 25 */ + /* return DIGIT for a digit, yylval = 0 through 9 */ + /* all other characters are returned immediately */ + + int c; + + while( (c=getchar()) == ' ' ) { /* skip blanks */ } + + /* c is now nonblank */ + + if( islower( c )) { + yylval = c - 'a'; + return ( LETTER ); + } + if( isdigit( c )) { + yylval = c - '0'; + return ( DIGIT ); + } + return( c ); +} +#line 511 "calc.tab.c" + +/* For use in generated program */ +#define yydepth (int)(yystack.s_mark - yystack.s_base) +#if YYBTYACC +#define yytrial (yyps->save) +#endif /* YYBTYACC */ + +#if YYDEBUG +#include <stdio.h> /* needed for printf */ +#endif + +#include <stdlib.h> /* needed for malloc, etc */ +#include <string.h> /* needed for memset */ + +/* allocate initial stack or double stack size, up to YYMAXDEPTH */ +static int yygrowstack(YYSTACKDATA *data) +{ + int i; + unsigned newsize; + YYINT *newss; + YYSTYPE *newvs; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYLTYPE *newps; +#endif + + 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 == NULL) + return YYENOMEM; + + data->s_base = newss; + data->s_mark = newss + i; + + newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs)); + if (newvs == NULL) + return YYENOMEM; + + data->l_base = newvs; + data->l_mark = newvs + i; + +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps)); + if (newps == NULL) + return YYENOMEM; + + data->p_base = newps; + data->p_mark = newps + i; +#endif + + data->stacksize = newsize; + data->s_last = data->s_base + newsize - 1; + +#if YYDEBUG + if (yydebug) + fprintf(stderr, "%sdebug: stack size increased to %d\n", YYPREFIX, newsize); +#endif + return 0; +} + +#if YYPURE || defined(YY_NO_LEAKS) +static void yyfreestack(YYSTACKDATA *data) +{ + free(data->s_base); + free(data->l_base); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + free(data->p_base); +#endif + memset(data, 0, sizeof(*data)); +} +#else +#define yyfreestack(data) /* nothing */ +#endif /* YYPURE || defined(YY_NO_LEAKS) */ +#if YYBTYACC + +static YYParseState * +yyNewState(unsigned size) +{ + YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState)); + if (p == NULL) return NULL; + + p->yystack.stacksize = size; + if (size == 0) + { + p->yystack.s_base = NULL; + p->yystack.l_base = NULL; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + p->yystack.p_base = NULL; +#endif + return p; + } + p->yystack.s_base = (YYINT *) malloc(size * sizeof(YYINT)); + if (p->yystack.s_base == NULL) return NULL; + p->yystack.l_base = (YYSTYPE *) malloc(size * sizeof(YYSTYPE)); + if (p->yystack.l_base == NULL) return NULL; + memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE)); +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + p->yystack.p_base = (YYLTYPE *) malloc(size * sizeof(YYLTYPE)); + if (p->yystack.p_base == NULL) return NULL; + memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE)); +#endif + + return p; +} + +static void +yyFreeState(YYParseState *p) +{ + yyfreestack(&p->yystack); + free(p); +} +#endif /* YYBTYACC */ + +#define YYABORT goto yyabort +#define YYREJECT goto yyabort +#define YYACCEPT goto yyaccept +#define YYERROR goto yyerrlab +#if YYBTYACC +#define YYVALID do { if (yyps->save) goto yyvalid; } while(0) +#define YYVALID_NESTED do { if (yyps->save && \ + yyps->save->save == 0) goto yyvalid; } while(0) +#endif /* YYBTYACC */ + +int +YYPARSE_DECL() +{ + int yym, yyn, yystate, yyresult; +#if YYBTYACC + int yynewerrflag; + YYParseState *yyerrctx = NULL; +#endif /* YYBTYACC */ +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */ +#endif +#if YYDEBUG + const char *yys; + + if ((yys = getenv("YYDEBUG")) != NULL) + { + yyn = *yys; + if (yyn >= '0' && yyn <= '9') + yydebug = yyn - '0'; + } + if (yydebug) + fprintf(stderr, "%sdebug[<# of symbols on state stack>]\n", YYPREFIX); +#endif +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + memset(yyerror_loc_range, 0, sizeof(yyerror_loc_range)); +#endif + +#if YYBTYACC + yyps = yyNewState(0); if (yyps == 0) goto yyenomem; + yyps->save = 0; +#endif /* YYBTYACC */ + yym = 0; - yyn = 0; ++ /* yyn is set below */ + yynerrs = 0; + yyerrflag = 0; + yychar = YYEMPTY; + yystate = 0; + +#if YYPURE + memset(&yystack, 0, sizeof(yystack)); +#endif + + if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow; + yystack.s_mark = yystack.s_base; + yystack.l_mark = yystack.l_base; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yystack.p_mark = yystack.p_base; +#endif + yystate = 0; + *yystack.s_mark = 0; + +yyloop: + if ((yyn = yydefred[yystate]) != 0) goto yyreduce; + if (yychar < 0) + { +#if YYBTYACC + do { + if (yylvp < yylve) + { + /* we're currently re-reading tokens */ + yylval = *yylvp++; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylloc = *yylpp++; +#endif + yychar = *yylexp++; + break; + } + if (yyps->save) + { + /* in trial mode; save scanner results for future parse attempts */ + if (yylvp == yylvlim) + { /* Enlarge lexical value queue */ + size_t p = (size_t) (yylvp - yylvals); + size_t s = (size_t) (yylvlim - yylvals); + + s += YYLVQUEUEGROWTH; + if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem; + if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem; +#endif + yylvp = yylve = yylvals + p; + yylvlim = yylvals + s; +#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) + yylpp = yylpe = yylpsns + p; + yylplim = yylpsns + s; *** 87059 LINES SKIPPED ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202302202237.31KMbViu096747>