MFV: r362513
Update byacc to 20200330.
This commit is contained in:
commit
c62675ffb3
@ -1,3 +1,423 @@
|
|||||||
|
2020-03-30 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* package/debian/copyright: bump
|
||||||
|
|
||||||
|
* test/yacc/grammar.tab.c, test/btyacc/grammar.tab.c, test/grammar.y, reader.c:
|
||||||
|
typo found with codespell
|
||||||
|
|
||||||
|
* yacc.1: fixes noted in the original report, overlooked in followup
|
||||||
|
|
||||||
|
2020-03-30 Bjarni.Ingi.Gislason
|
||||||
|
|
||||||
|
* yacc.1: typography/spelling fixes - Debian #955175
|
||||||
|
|
||||||
|
2020-03-30 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
2020-03-10 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* configure: regen
|
||||||
|
|
||||||
|
* aclocal.m4:
|
||||||
|
resync with my-autoconf, mostly fixes for compiler-warnings
|
||||||
|
|
||||||
|
* configure.in: use macro to suppress X-dependency from newer macros
|
||||||
|
|
||||||
|
2019-12-20 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* config.guess: 2019-12-21
|
||||||
|
|
||||||
|
2019-11-25 Tom.Shields
|
||||||
|
|
||||||
|
* main.c:
|
||||||
|
fix an inconsistency between the getopt and non-getopt configuration.
|
||||||
|
In the former, getopt always used "yacc", not the name of the executable.
|
||||||
|
|
||||||
|
2019-11-25 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* test/run_make.sh:
|
||||||
|
suppress bison's -Wyacc warning, which is not useful.
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
2019-11-19 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* yacc.1: new version of manpage
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
* yacc.1: document %code
|
||||||
|
|
||||||
|
* test/btyacc/calc_code_all.error, test/btyacc/calc_code_all.output, test/btyacc/calc_code_all.tab.c, test/btyacc/calc_code_all.tab.h, test/btyacc/calc_code_default.error, test/btyacc/calc_code_default.output, test/btyacc/calc_code_default.tab.c, test/btyacc/calc_code_default.tab.h, test/btyacc/calc_code_imports.error, test/btyacc/calc_code_imports.output, test/btyacc/calc_code_imports.tab.c, test/btyacc/calc_code_imports.tab.h, test/btyacc/calc_code_provides.error, test/btyacc/calc_code_provides.output, test/btyacc/calc_code_provides.tab.c, test/btyacc/calc_code_provides.tab.h, test/btyacc/calc_code_requires.error, test/btyacc/calc_code_requires.output, test/btyacc/calc_code_requires.tab.c, test/btyacc/calc_code_requires.tab.h, test/btyacc/calc_code_top.error, test/btyacc/calc_code_top.output, test/btyacc/calc_code_top.tab.c, test/btyacc/calc_code_top.tab.h, test/yacc/calc_code_all.tab.c, test/yacc/calc_code_all.tab.h, test/yacc/calc_code_default.tab.c, test/yacc/calc_code_provides.tab.c, test/yacc/calc_code_provides.tab.h, test/yacc/calc_code_requires.tab.c, test/yacc/calc_code_requires.tab.h, test/yacc/calc_code_top.tab.c:
|
||||||
|
RCS_BASE
|
||||||
|
|
||||||
|
* output.c:
|
||||||
|
amend updates for 'outline' when processing "%code" in code-file
|
||||||
|
|
||||||
|
* output.c:
|
||||||
|
modify output_code_lines() to show begin/end block comments which were in
|
||||||
|
reader.c, and to generate a #line for the code-file.
|
||||||
|
|
||||||
|
* reader.c:
|
||||||
|
modify copy_code() to allow for multiple %code directives for a given
|
||||||
|
section, recording the input line-number for each directive as a #line
|
||||||
|
in the resulting string. remove the block start/end comments, since those
|
||||||
|
will be done for a whole section in output.c
|
||||||
|
|
||||||
|
* mstring.c, defs.h: add msrenew()
|
||||||
|
|
||||||
|
* test/yacc/calc_code_all.error, test/yacc/calc_code_all.output, test/yacc/calc_code_default.error, test/yacc/calc_code_default.output, test/yacc/calc_code_default.tab.h, test/yacc/calc_code_imports.error, test/yacc/calc_code_imports.output, test/yacc/calc_code_imports.tab.c, test/yacc/calc_code_imports.tab.h, test/yacc/calc_code_provides.error, test/yacc/calc_code_provides.output, test/yacc/calc_code_requires.error, test/yacc/calc_code_requires.output, test/yacc/calc_code_top.error, test/yacc/calc_code_top.output, test/yacc/calc_code_top.tab.h:
|
||||||
|
RCS_BASE
|
||||||
|
|
||||||
|
2019-11-18 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* test/calc_code_imports.y, test/calc_code_all.y, test/calc_code_default.y, test/calc_code_top.y, test/calc_code_provides.y, test/calc_code_requires.y:
|
||||||
|
RCS_BASE
|
||||||
|
|
||||||
|
2019-11-04 Michael.Forney
|
||||||
|
|
||||||
|
* defs.h: add missing "extern" for new variable "code_lines"
|
||||||
|
|
||||||
|
2019-11-03 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* main.c: build-fix for MinGW cross-compiling
|
||||||
|
|
||||||
|
* output.c, reader.c: gcc-warnings
|
||||||
|
|
||||||
|
* output.c: check validity of text_file before rewind
|
||||||
|
remove redundant check of iflag
|
||||||
|
|
||||||
|
* main.c: fix memory-leak reported by clang
|
||||||
|
|
||||||
|
* mkpar.c: guard against a null-reference reported by clang (unlikely)
|
||||||
|
|
||||||
|
* reader.c: fix two coverity warnings:
|
||||||
|
a) resource leak on malloc-failure
|
||||||
|
b) possible null-pointer dereference on parse-error
|
||||||
|
|
||||||
|
* test/btyacc/err_inherit4.tab.h, test/btyacc/btyacc_demo.tab.h: regen
|
||||||
|
|
||||||
|
* defs.h: use enum's to simplify recent change
|
||||||
|
|
||||||
|
* mstring.c:
|
||||||
|
enable mstring() in regular byacc, since Zoulas' change relies upon it
|
||||||
|
|
||||||
|
2019-11-03 Christos.Zoulas
|
||||||
|
|
||||||
|
* defs.h, reader.c, output.c: add support for bison's "%code" feature
|
||||||
|
also fix a small bug: declare YYLTYPE externally when producing locations
|
||||||
|
|
||||||
|
2019-11-03 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* test/btyacc/help.error, test/btyacc/no_b_opt.error, test/btyacc/no_output2.error, test/btyacc/no_p_opt.error, test/yacc/help.error, test/yacc/no_b_opt.error, test/yacc/no_output2.error, test/yacc/no_p_opt.error:
|
||||||
|
regen
|
||||||
|
|
||||||
|
* test/run_test.sh:
|
||||||
|
there's no standard wording for the options-errors from getopt;
|
||||||
|
filter that to "error message" in the test reference files.
|
||||||
|
|
||||||
|
* main.c:
|
||||||
|
provide for using getopt(), to accommodate a case where developers have
|
||||||
|
relied upon non-POSIX behavior.
|
||||||
|
|
||||||
|
* test/run_test.sh:
|
||||||
|
getopt's messages do not print the full pathname of yacc in some cases;
|
||||||
|
adjust the sed-script which changes those to "YACC"
|
||||||
|
|
||||||
|
* configure: regen
|
||||||
|
|
||||||
|
* config_h.in: regen, using autoheader-252
|
||||||
|
|
||||||
|
* configure.in: add configure check for getopt
|
||||||
|
|
||||||
|
* configure: regen
|
||||||
|
|
||||||
|
* aclocal.m4:
|
||||||
|
resync with my-autoconf adds a fix which accommodates a difference in
|
||||||
|
warning options between gcc/clang when --enable-warnings is not set.
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
2019-09-11 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* config.guess, config.sub: 2019-09-10
|
||||||
|
|
||||||
|
2019-06-17 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* test/btyacc/big_b.error, test/btyacc/big_l.error, test/btyacc/help.error, test/btyacc/no_b_opt.error, test/btyacc/no_output2.error, test/btyacc/no_p_opt.error, test/btyacc/nostdin.error, test/yacc/big_b.error, test/yacc/big_l.error, test/yacc/help.error, test/yacc/no_b_opt.error, test/yacc/no_output2.error, test/yacc/no_p_opt.error, test/yacc/nostdin.error:
|
||||||
|
regen
|
||||||
|
|
||||||
|
* test/run_test.sh: test "-H" rather than "-D"
|
||||||
|
|
||||||
|
2019-06-16 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* main.c, yacc.1:
|
||||||
|
change "-D" option to "-H" (discussion with Ethan Sommer)
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
* test/btyacc/defines1.calc.c, test/btyacc/defines2.calc.c, test/btyacc/defines3.calc.c:
|
||||||
|
RCS_BASE
|
||||||
|
|
||||||
|
* test/run_test.sh: in test_defines, save the ".c" file too
|
||||||
|
|
||||||
|
* test/yacc/defines3.calc.c, test/yacc/defines2.calc.c, test/yacc/defines1.calc.c:
|
||||||
|
RCS_BASE
|
||||||
|
|
||||||
|
* test/run_test.sh:
|
||||||
|
output of test_defines should be a header ".h", not ".c"
|
||||||
|
|
||||||
|
* test/btyacc/defines1.calc.h, test/btyacc/defines1.error, test/btyacc/defines1.output, test/btyacc/defines2.calc.h, test/btyacc/defines2.error, test/btyacc/defines2.output, test/btyacc/defines3.calc.h, test/btyacc/defines3.error, test/btyacc/defines3.output:
|
||||||
|
RCS_BASE
|
||||||
|
|
||||||
|
* main.c: however, a subsequent -d cancels -D
|
||||||
|
|
||||||
|
* test/yacc/defines1.calc.h, test/yacc/defines3.calc.h: RCS_BASE
|
||||||
|
|
||||||
|
* main.c: -D option implies -d
|
||||||
|
|
||||||
|
* test/yacc/defines1.error, test/yacc/defines1.output, test/yacc/defines2.calc.h, test/yacc/defines2.error, test/yacc/defines2.output, test/yacc/defines3.error, test/yacc/defines3.output:
|
||||||
|
RCS_BASE
|
||||||
|
|
||||||
|
* yacc.1: align macro definitions with my other manpages
|
||||||
|
|
||||||
|
* test/run_test.sh: add test for -D after -d or -b options
|
||||||
|
|
||||||
|
* test/btyacc/stdin1.calc.c, test/btyacc/stdin1.error, test/btyacc/stdin1.output, test/btyacc/stdin2.calc.c, test/btyacc/stdin2.error, test/btyacc/stdin2.output:
|
||||||
|
RCS_BASE
|
||||||
|
|
||||||
|
* test/btyacc/big_b.error, test/btyacc/big_b.output, test/btyacc/big_l.error, test/btyacc/big_l.output, test/btyacc/help.error, test/btyacc/help.output, test/btyacc/no_b_opt.error, test/btyacc/no_b_opt.output, test/btyacc/no_b_opt1.error, test/btyacc/no_b_opt1.output, test/btyacc/no_code_c.error, test/btyacc/no_code_c.output, test/btyacc/no_defines.error, test/btyacc/no_defines.output, test/btyacc/no_graph.error, test/btyacc/no_graph.output, test/btyacc/no_include.error, test/btyacc/no_include.output, test/btyacc/no_opts.error, test/btyacc/no_opts.output, test/btyacc/no_output.error, test/btyacc/no_output.output, test/btyacc/no_output1.error, test/btyacc/no_output1.output, test/btyacc/no_output2.error, test/btyacc/no_output2.output, test/btyacc/no_p_opt.error, test/btyacc/no_p_opt.output, test/btyacc/no_p_opt1.error, test/btyacc/no_p_opt1.output, test/btyacc/no_verbose.error, test/btyacc/no_verbose.output, test/btyacc/nostdin.error, test/btyacc/nostdin.output, test/yacc/big_b.error, test/yacc/big_b.output, test/yacc/big_l.error, test/yacc/big_l.output, test/yacc/help.error, test/yacc/help.output, test/yacc/no_b_opt.error, test/yacc/no_b_opt.output, test/yacc/no_b_opt1.error, test/yacc/no_b_opt1.output, test/yacc/no_code_c.error, test/yacc/no_code_c.output, test/yacc/no_defines.error, test/yacc/no_defines.output, test/yacc/no_graph.error, test/yacc/no_graph.output, test/yacc/no_include.error, test/yacc/no_include.output, test/yacc/no_opts.error, test/yacc/no_opts.output, test/yacc/no_output.error, test/yacc/no_output.output, test/yacc/no_output1.error, test/yacc/no_output1.output, test/yacc/no_output2.error, test/yacc/no_output2.output, test/yacc/no_p_opt.error, test/yacc/no_p_opt.output, test/yacc/no_p_opt1.error, test/yacc/no_p_opt1.output, test/yacc/no_verbose.error, test/yacc/no_verbose.output, test/yacc/nostdin.error, test/yacc/nostdin.output:
|
||||||
|
regen
|
||||||
|
|
||||||
|
* test/run_test.sh:
|
||||||
|
add a test for stdin "-" vs end-options "--", and correct a redirection
|
||||||
|
of stderr in test_flags
|
||||||
|
|
||||||
|
* test/yacc/stdin2.output, test/yacc/stdin2.calc.c, test/yacc/stdin1.calc.c, test/yacc/stdin1.error, test/yacc/stdin1.output, test/yacc/stdin2.error:
|
||||||
|
RCS_BASE
|
||||||
|
|
||||||
|
* test/btyacc/big_b.output, test/btyacc/big_l.output, test/btyacc/help.output, test/btyacc/no_b_opt.output, test/btyacc/no_output2.output, test/btyacc/no_p_opt.output, test/btyacc/nostdin.output, test/yacc/big_b.output, test/yacc/big_l.output, test/yacc/help.output, test/yacc/no_b_opt.output, test/yacc/no_output2.output, test/yacc/no_p_opt.output, test/yacc/nostdin.output:
|
||||||
|
regen
|
||||||
|
|
||||||
|
* main.c: add -D option, to specify filename vs y.tab.h for -d
|
||||||
|
|
||||||
|
* defs.h: add dflag2, for -D option
|
||||||
|
|
||||||
|
* yacc.1: document -D option
|
||||||
|
|
||||||
|
* config_h.in: updated with autoheader-252
|
||||||
|
|
||||||
|
* configure: regen
|
||||||
|
|
||||||
|
* package/debian/copyright: bump
|
||||||
|
|
||||||
|
* aclocal.m4: add CF_GETOPT_HEADER
|
||||||
|
|
||||||
|
* aclocal.m4: Improved autoconf macros:
|
||||||
|
+ CF_CC_ENV_FLAGS
|
||||||
|
putting preprocessor flags in CFLAGS also is a nuisance, which can be
|
||||||
|
addressed in the same way.
|
||||||
|
+ CF_GCC_WARNINGS
|
||||||
|
factor out workaround for XTSTRINGDEFINES as CF_CONST_X_STRING
|
||||||
|
+ CF_GNU_SOURCE
|
||||||
|
The check for _DEFAULT_SOURCE should apply to "recent" Cygwin (since early 2016),
|
||||||
|
and except for "NEWLIB" vs "GLIBC" in the test, acts the same if I pretend
|
||||||
|
that "newlib" is the GNU C library. Without this, the check falls through
|
||||||
|
to the _XOPEN_SOURCE test, which breaks the pseudoterminal checks for xterm.
|
||||||
|
+ CF_POSIX_C_SOURCE
|
||||||
|
add/use CF_POSIX_VISIBLE
|
||||||
|
+ CF_TRY_XOPEN_SOURCE
|
||||||
|
use CF_APPEND_TEXT
|
||||||
|
+ CF_WITH_MAN2HTML
|
||||||
|
use sed to work around non-POSIX tail utility
|
||||||
|
+ CF_XOPEN_SOURCE
|
||||||
|
use CF_APPEND_TEXT
|
||||||
|
add/use CF_POSIX_VISIBLE
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
2019-06-10 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* config.guess: 2019-06-10
|
||||||
|
|
||||||
|
2019-05-22 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* config.sub: 2019-05-22
|
||||||
|
|
||||||
|
2018-06-09 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* yacc.1: minor typographical fixes
|
||||||
|
|
||||||
|
* test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/expr.oxout.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/rename_debug.c, btyaccpar.c:
|
||||||
|
regen
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
2018-06-09 Tom.Shields
|
||||||
|
|
||||||
|
* btyaccpar.skel:
|
||||||
|
add casts to fix g++ (clang++) compile errors in the backtracking skeleton
|
||||||
|
due to assignment of ‘void *’ to another pointer type.
|
||||||
|
|
||||||
|
2018-05-25 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* test/run_make.sh:
|
||||||
|
check if this is bison 3+ before adding options to suppress warnings
|
||||||
|
|
||||||
|
* package/byacc.spec: build-fix for Mageia 6
|
||||||
|
|
||||||
|
* package/byacc.spec: add btyacc package
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
* package/debian/control: add a package for btyacc
|
||||||
|
|
||||||
|
* package/debian/rules: generate a package for btyacc
|
||||||
|
|
||||||
|
2018-05-24 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/expr.oxout.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, btyaccpar.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/rename_debug.c:
|
||||||
|
regen
|
||||||
|
|
||||||
|
* btyaccpar.skel: fix typo
|
||||||
|
|
||||||
|
2018-05-21 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* test/run_make.sh:
|
||||||
|
ignore case for "%" directives to skip with old-yacc, and add %token-table
|
||||||
|
to the list
|
||||||
|
|
||||||
|
* btyaccpar.c: regen
|
||||||
|
|
||||||
|
2018-05-21 Christos.Zoulas
|
||||||
|
|
||||||
|
* btyaccpar.skel:
|
||||||
|
improve compatibility with bison by changing the YYLLOC_DEFAULT macro to use
|
||||||
|
YYRHSLOC() macro, and adjusting the array indices of yyerror_loc_range[] for
|
||||||
|
consistency.
|
||||||
|
|
||||||
|
2018-05-10 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* output.c:
|
||||||
|
add a fallback definition for YYDEBUG to the -i externs file.
|
||||||
|
|
||||||
|
* test/btyacc/rename_debug.i, test/yacc/rename_debug.i: regen
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
2018-05-09 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* configure: regen
|
||||||
|
|
||||||
|
* aclocal.m4: resync with my-autoconf
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
* test/btyacc/rename_debug.i, btyaccpar.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/expr.oxout.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/rename_debug.c, test/btyacc/varsyntax_calc1.tab.c:
|
||||||
|
regen
|
||||||
|
|
||||||
|
* btyaccpar.skel: apply Guy Harris' changes here as well
|
||||||
|
|
||||||
|
* test/btyacc/rename_debug.i, test/yacc/rename_debug.i: regen
|
||||||
|
|
||||||
|
* output.c: correct/improve fallback prototype for yylex()
|
||||||
|
|
||||||
|
* test/btyacc/rename_debug.i, test/yacc/rename_debug.i: regen
|
||||||
|
|
||||||
|
2018-05-08 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* test/btyacc/grammar.tab.c, test/yacc/grammar.tab.c: regen
|
||||||
|
|
||||||
|
* test/grammar.y:
|
||||||
|
quiet some warnings from gcc 7 when doing "make check_make"
|
||||||
|
|
||||||
|
* package/debian/watch, package/pkgsrc/Makefile: update ftp-url
|
||||||
|
|
||||||
|
* test/btyacc/ok_syntax1.tab.h, test/btyacc/btyacc_calc1.tab.h: regen
|
||||||
|
|
||||||
|
* output.c:
|
||||||
|
provide yylex() declaration for simple case (request by "Mutiny")
|
||||||
|
|
||||||
|
* test/yacc/err_syntax20.tab.c, test/yacc/error.tab.c, test/yacc/expr.oxout.tab.c, test/yacc/grammar.tab.c, test/yacc/ok_syntax1.tab.c, test/yacc/ok_syntax1.tab.h, test/yacc/pure_calc.tab.c, test/yacc/pure_error.tab.c, test/yacc/quote_calc-s.tab.c, test/yacc/quote_calc.tab.c, test/yacc/quote_calc2-s.tab.c, test/yacc/quote_calc2.tab.c, test/yacc/quote_calc3-s.tab.c, test/yacc/quote_calc3.tab.c, test/yacc/quote_calc4-s.tab.c, test/yacc/quote_calc4.tab.c, test/yacc/varsyntax_calc1.tab.c, test/yacc/calc.tab.c, test/yacc/calc1.tab.c, test/yacc/calc2.tab.c, test/yacc/calc3.tab.c, test/yacc/code_calc.code.c, test/yacc/code_error.code.c, test/yacc/empty.tab.c, test/yacc/err_syntax10.tab.c, test/yacc/err_syntax11.tab.c, test/yacc/err_syntax12.tab.c, test/yacc/err_syntax18.tab.c, test/yacc/rename_debug.c, test/yacc/rename_debug.i, yaccpar.c:
|
||||||
|
regen
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/debian/copyright, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
2018-05-06 Guy.Harris
|
||||||
|
|
||||||
|
* yaccpar.skel: two fixes:
|
||||||
|
1) define yydebug only if YYDEBUG is defined and
|
||||||
|
2) make yynerrs a parser-local variable if the parser is reentrant.
|
||||||
|
|
||||||
|
2018-02-24 Guy.Harris
|
||||||
|
|
||||||
|
* output.c: do not emit "extern YYSTYPE yylval;" for pure parsers
|
||||||
|
|
||||||
|
2018-02-05 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* config.sub: 2018-01-15
|
||||||
|
|
||||||
|
* config.guess: 2018-01-26
|
||||||
|
|
||||||
|
2017-12-04 erik.b.andersen
|
||||||
|
|
||||||
|
* main.c: A proper path for temporary files is needed by byacc under
|
||||||
|
Windows commandline, otherwise there's a risk of empty files.
|
||||||
|
The TEMP environment variable is always defined in Windows.
|
||||||
|
|
||||||
|
* defs.h: The noreturn attribute needs to be specified before function
|
||||||
|
to be portable among compilers (gcc, clang, msvc).
|
||||||
|
|
||||||
|
2017-12-04 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* reader.c: adapted fix by Erik B:
|
||||||
|
a) increase the length of name[] to account for a trailing null
|
||||||
|
b) note that calling syntax_error() from get_number() does not return
|
||||||
|
|
||||||
|
2017-09-14 Tom.Shields
|
||||||
|
|
||||||
|
* yacc.1: fix typo
|
||||||
|
|
||||||
|
2017-07-09 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* package/byacc.spec, package/mingw-byacc.spec:
|
||||||
|
use predefined "configure"
|
||||||
|
|
||||||
|
* reader.c: remove unused assignment
|
||||||
|
|
||||||
|
* package/debian/rules: use dpkg-buildflags
|
||||||
|
|
||||||
|
* configure: regen
|
||||||
|
|
||||||
|
* aclocal.m4: resync with my-autoconf
|
||||||
|
|
||||||
|
* reader.c, output.c, defs.h:
|
||||||
|
add/use IS_NAME1() and IS_NAME2() to reduce clutter
|
||||||
|
|
||||||
|
* reader.c, output.c, defs.h:
|
||||||
|
guard against sign-extension in ctype-macros
|
||||||
|
|
||||||
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
|
bump
|
||||||
|
|
||||||
|
* reader.c: check for numeric overflow in get_number()
|
||||||
|
|
||||||
|
* reader.c:
|
||||||
|
correct limit-checks for input filename and line-number, in case no valid
|
||||||
|
filename and/or number was found.
|
||||||
|
|
||||||
2017-04-30 Thomas E. Dickey <dickey@invisible-island.net>
|
2017-04-30 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
* test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/expr.oxout.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/rename_debug.c, btyaccpar.c, btyaccpar.skel:
|
* test/btyacc/quote_calc-s.tab.c, test/btyacc/quote_calc2-s.tab.c, test/btyacc/quote_calc2.tab.c, test/btyacc/quote_calc3-s.tab.c, test/btyacc/quote_calc3.tab.c, test/btyacc/quote_calc4-s.tab.c, test/btyacc/quote_calc4.tab.c, test/btyacc/varsyntax_calc1.tab.c, test/btyacc/err_syntax18.tab.c, test/btyacc/err_syntax20.tab.c, test/btyacc/error.tab.c, test/btyacc/expr.oxout.tab.c, test/btyacc/grammar.tab.c, test/btyacc/inherit0.tab.c, test/btyacc/inherit1.tab.c, test/btyacc/inherit2.tab.c, test/btyacc/ok_syntax1.tab.c, test/btyacc/pure_calc.tab.c, test/btyacc/pure_error.tab.c, test/btyacc/quote_calc.tab.c, test/btyacc/btyacc_calc1.tab.c, test/btyacc/btyacc_demo.tab.c, test/btyacc/btyacc_destroy1.tab.c, test/btyacc/btyacc_destroy2.tab.c, test/btyacc/btyacc_destroy3.tab.c, test/btyacc/calc.tab.c, test/btyacc/calc1.tab.c, test/btyacc/calc2.tab.c, test/btyacc/calc3.tab.c, test/btyacc/code_calc.code.c, test/btyacc/code_error.code.c, test/btyacc/empty.tab.c, test/btyacc/err_inherit3.tab.c, test/btyacc/err_inherit4.tab.c, test/btyacc/err_syntax10.tab.c, test/btyacc/err_syntax11.tab.c, test/btyacc/err_syntax12.tab.c, test/btyacc/rename_debug.c, btyaccpar.c, btyaccpar.skel:
|
||||||
@ -22,6 +442,10 @@
|
|||||||
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
* VERSION, package/byacc.spec, package/debian/changelog, package/mingw-byacc.spec, package/pkgsrc/Makefile:
|
||||||
bump
|
bump
|
||||||
|
|
||||||
|
2017-04-29 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
|
* config.sub: 2017-04-02
|
||||||
|
|
||||||
2017-03-18 Thomas E. Dickey <dickey@invisible-island.net>
|
2017-03-18 Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
* config.sub: 2017-02-07
|
* config.sub: 2017-02-07
|
||||||
@ -2558,7 +2982,7 @@
|
|||||||
|
|
||||||
* vmsbuild.com: original version
|
* vmsbuild.com: original version
|
||||||
|
|
||||||
2000-02-23 dickey@clark.net
|
2000-02-23 Thomas E. Dickey <dickey@clark.net>
|
||||||
|
|
||||||
* test/RCS, RCS: PERMIT FILE
|
* test/RCS, RCS: PERMIT FILE
|
||||||
|
|
||||||
@ -2597,7 +3021,7 @@
|
|||||||
|
|
||||||
* test/ftp.output, test/ftp.tab.c, test/ftp.tab.h: RCS_BASE
|
* test/ftp.output, test/ftp.tab.c, test/ftp.tab.h: RCS_BASE
|
||||||
|
|
||||||
1993-02-22 Thomas E. Dickey <dickey@software.org>
|
1993-02-22 dickey@software.org
|
||||||
|
|
||||||
* test/yacc/error.output, test/yacc/error.tab.h:
|
* test/yacc/error.output, test/yacc/error.tab.h:
|
||||||
reference output for testing
|
reference output for testing
|
||||||
@ -2637,7 +3061,7 @@
|
|||||||
|
|
||||||
* symtab.c, lalr.c, error.c: original version
|
* symtab.c, lalr.c, error.c: original version
|
||||||
|
|
||||||
1990-01-16 Thomas E. Dickey <dickey@software.org>
|
1990-01-16 dickey@software.org
|
||||||
|
|
||||||
* test/code_error.y, test/pure_error.y: RCS_BASE
|
* test/code_error.y, test/pure_error.y: RCS_BASE
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
MANIFEST for byacc-20170430, version t20170430
|
MANIFEST for byacc-20200330, version t20200330
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
MANIFEST this file
|
MANIFEST this file
|
||||||
ACKNOWLEDGEMENTS original version of byacc - 1993
|
ACKNOWLEDGEMENTS original version of byacc - 1993
|
||||||
@ -77,10 +77,6 @@ test/btyacc/btyacc_demo.error reference output for testing
|
|||||||
test/btyacc/btyacc_demo.output reference output for testing
|
test/btyacc/btyacc_demo.output reference output for testing
|
||||||
test/btyacc/btyacc_demo.tab.c reference output for testing
|
test/btyacc/btyacc_demo.tab.c reference output for testing
|
||||||
test/btyacc/btyacc_demo.tab.h reference output for testing
|
test/btyacc/btyacc_demo.tab.h reference output for testing
|
||||||
test/btyacc/btyacc_demo2.error reference output for testing
|
|
||||||
test/btyacc/btyacc_demo2.output reference output for testing
|
|
||||||
test/btyacc/btyacc_demo2.tab.c reference output for testing
|
|
||||||
test/btyacc/btyacc_demo2.tab.h reference output for testing
|
|
||||||
test/btyacc/btyacc_destroy1.error reference output for testing
|
test/btyacc/btyacc_destroy1.error reference output for testing
|
||||||
test/btyacc/btyacc_destroy1.output reference output for testing
|
test/btyacc/btyacc_destroy1.output reference output for testing
|
||||||
test/btyacc/btyacc_destroy1.tab.c reference output for testing
|
test/btyacc/btyacc_destroy1.tab.c reference output for testing
|
||||||
@ -114,11 +110,6 @@ test/btyacc/code_calc.error reference output for testing
|
|||||||
test/btyacc/code_calc.output reference output for testing
|
test/btyacc/code_calc.output reference output for testing
|
||||||
test/btyacc/code_calc.tab.c reference output for testing
|
test/btyacc/code_calc.tab.c reference output for testing
|
||||||
test/btyacc/code_calc.tab.h reference output for testing
|
test/btyacc/code_calc.tab.h reference output for testing
|
||||||
test/btyacc/code_debug.c reference for test-output
|
|
||||||
test/btyacc/code_debug.error reference for test-output
|
|
||||||
test/btyacc/code_debug.h reference for test-output
|
|
||||||
test/btyacc/code_debug.i reference for test-output
|
|
||||||
test/btyacc/code_debug.output reference for test-output
|
|
||||||
test/btyacc/code_error.code.c reference output for testing
|
test/btyacc/code_error.code.c reference output for testing
|
||||||
test/btyacc/code_error.error reference output for testing
|
test/btyacc/code_error.error reference output for testing
|
||||||
test/btyacc/code_error.output reference output for testing
|
test/btyacc/code_error.output reference output for testing
|
||||||
@ -382,6 +373,7 @@ test/btyacc_demo.y testcase for btyacc
|
|||||||
test/btyacc_destroy1.y btyacc test-case for %parse-param
|
test/btyacc_destroy1.y btyacc test-case for %parse-param
|
||||||
test/btyacc_destroy2.y btyacc test-case for %parse-param
|
test/btyacc_destroy2.y btyacc test-case for %parse-param
|
||||||
test/btyacc_destroy3.y btyacc test-case for %parse-param
|
test/btyacc_destroy3.y btyacc test-case for %parse-param
|
||||||
|
test/calc.tab.c c-file for calc.y
|
||||||
test/calc.y example from VMS freeware version of byacc
|
test/calc.y example from VMS freeware version of byacc
|
||||||
test/calc1.y advanced example from Steve Johnson's paper.
|
test/calc1.y advanced example from Steve Johnson's paper.
|
||||||
test/calc2.y test-cases and reference files for %lex-param / %parse-param
|
test/calc2.y test-cases and reference files for %lex-param / %parse-param
|
||||||
|
@ -1 +1 @@
|
|||||||
20170430
|
20200330
|
||||||
|
420
contrib/byacc/aclocal.m4
vendored
420
contrib/byacc/aclocal.m4
vendored
@ -1,7 +1,7 @@
|
|||||||
dnl $Id: aclocal.m4,v 1.42 2017/02/01 10:12:21 tom Exp $
|
dnl $Id: aclocal.m4,v 1.48 2020/03/10 22:53:47 tom Exp $
|
||||||
dnl Macros for byacc configure script (Thomas E. Dickey)
|
dnl Macros for byacc configure script (Thomas E. Dickey)
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl Copyright 2004-2016,2017 Thomas E. Dickey
|
dnl Copyright 2004-2019,2020 Thomas E. Dickey
|
||||||
dnl
|
dnl
|
||||||
dnl Permission is hereby granted, free of charge, to any person obtaining a
|
dnl Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
dnl copy of this software and associated documentation files (the
|
dnl copy of this software and associated documentation files (the
|
||||||
@ -54,7 +54,7 @@ define([CF_ACVERSION_COMPARE],
|
|||||||
[ifelse([$8], , ,[$8])],
|
[ifelse([$8], , ,[$8])],
|
||||||
[ifelse([$9], , ,[$9])])])dnl
|
[ifelse([$9], , ,[$9])])])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_ADD_CFLAGS version: 12 updated: 2015/04/12 15:39:00
|
dnl CF_ADD_CFLAGS version: 13 updated: 2017/02/25 18:57:40
|
||||||
dnl -------------
|
dnl -------------
|
||||||
dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
|
dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
|
||||||
dnl The second parameter if given makes this macro verbose.
|
dnl The second parameter if given makes this macro verbose.
|
||||||
@ -84,10 +84,10 @@ case $cf_fix_cppflags in
|
|||||||
&& cf_fix_cppflags=yes
|
&& cf_fix_cppflags=yes
|
||||||
|
|
||||||
if test $cf_fix_cppflags = yes ; then
|
if test $cf_fix_cppflags = yes ; then
|
||||||
cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
|
CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
|
||||||
continue
|
continue
|
||||||
elif test "${cf_tst_cflags}" = "\"'" ; then
|
elif test "${cf_tst_cflags}" = "\"'" ; then
|
||||||
cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
|
CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@ -102,17 +102,17 @@ case $cf_fix_cppflags in
|
|||||||
CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
|
CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
|
CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
(*)
|
(*)
|
||||||
cf_new_cflags="$cf_new_cflags $cf_add_cflags"
|
CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
(yes)
|
(yes)
|
||||||
cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
|
CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
|
||||||
|
|
||||||
cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
|
cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
|
||||||
|
|
||||||
@ -125,21 +125,31 @@ done
|
|||||||
|
|
||||||
if test -n "$cf_new_cflags" ; then
|
if test -n "$cf_new_cflags" ; then
|
||||||
ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
|
ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
|
||||||
CFLAGS="$CFLAGS $cf_new_cflags"
|
CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -n "$cf_new_cppflags" ; then
|
if test -n "$cf_new_cppflags" ; then
|
||||||
ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
|
ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
|
||||||
CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
|
CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -n "$cf_new_extra_cppflags" ; then
|
if test -n "$cf_new_extra_cppflags" ; then
|
||||||
ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
|
ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
|
||||||
EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
|
CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(EXTRA_CPPFLAGS)
|
AC_SUBST(EXTRA_CPPFLAGS)
|
||||||
|
|
||||||
|
])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
|
dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
|
||||||
|
dnl --------------
|
||||||
|
dnl use this macro for appending text without introducing an extra blank at
|
||||||
|
dnl the beginning
|
||||||
|
define([CF_APPEND_TEXT],
|
||||||
|
[
|
||||||
|
test -n "[$]$1" && $1="[$]$1 "
|
||||||
|
$1="[$]{$1}$2"
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
|
dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
|
||||||
@ -171,7 +181,7 @@ ifelse([$3],,[ :]dnl
|
|||||||
])dnl
|
])dnl
|
||||||
])])dnl
|
])])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_CC_ENV_FLAGS version: 6 updated: 2016/08/29 20:57:00
|
dnl CF_CC_ENV_FLAGS version: 9 updated: 2018/07/29 18:03:26
|
||||||
dnl ---------------
|
dnl ---------------
|
||||||
dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
|
dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
|
||||||
dnl into CC. This will not help with broken scripts that wrap the compiler
|
dnl into CC. This will not help with broken scripts that wrap the compiler
|
||||||
@ -188,19 +198,37 @@ AC_DEFUN([CF_CC_ENV_FLAGS],
|
|||||||
# This should have been defined by AC_PROG_CC
|
# This should have been defined by AC_PROG_CC
|
||||||
: ${CC:=cc}
|
: ${CC:=cc}
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(\$CFLAGS variable)
|
||||||
|
case "x$CFLAGS" in
|
||||||
|
(*-[[IUD]]*)
|
||||||
|
AC_MSG_RESULT(broken)
|
||||||
|
AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
|
||||||
|
cf_flags="$CFLAGS"
|
||||||
|
CFLAGS=
|
||||||
|
for cf_arg in $cf_flags
|
||||||
|
do
|
||||||
|
CF_ADD_CFLAGS($cf_arg)
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
AC_MSG_RESULT(ok)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
AC_MSG_CHECKING(\$CC variable)
|
AC_MSG_CHECKING(\$CC variable)
|
||||||
case "$CC" in
|
case "$CC" in
|
||||||
(*[[\ \ ]]-*)
|
(*[[\ \ ]]-*)
|
||||||
AC_MSG_RESULT(broken)
|
AC_MSG_RESULT(broken)
|
||||||
AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
|
AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
|
||||||
# humor him...
|
# humor him...
|
||||||
cf_flags=`echo "$CC" | sed -e 's/^.*[[ ]]\(-[[^ ]]\)/\1/'`
|
cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
|
||||||
CC=`echo "$CC " | sed -e 's/[[ ]]-[[^ ]].*$//' -e 's/[[ ]]*$//'`
|
cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
|
||||||
|
CC="$cf_prog"
|
||||||
for cf_arg in $cf_flags
|
for cf_arg in $cf_flags
|
||||||
do
|
do
|
||||||
case "x$cf_arg" in
|
case "x$cf_arg" in
|
||||||
(x-[[IUDfgOW]]*)
|
(x-[[IUDfgOW]]*)
|
||||||
CF_ADD_CFLAGS($cf_flags)
|
CF_ADD_CFLAGS($cf_arg)
|
||||||
;;
|
;;
|
||||||
(*)
|
(*)
|
||||||
CC="$CC $cf_arg"
|
CC="$CC $cf_arg"
|
||||||
@ -285,6 +313,66 @@ cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
|
dnl CF_CONST_X_STRING version: 4 updated: 2020/03/10 18:53:47
|
||||||
|
dnl -----------------
|
||||||
|
dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
|
||||||
|
dnl character-strings.
|
||||||
|
dnl
|
||||||
|
dnl It is ambiguous because the specification accommodated the pre-ANSI
|
||||||
|
dnl compilers bundled by more than one vendor in lieu of providing a standard C
|
||||||
|
dnl compiler other than by costly add-ons. Because of this, the specification
|
||||||
|
dnl did not take into account the use of const for telling the compiler that
|
||||||
|
dnl string literals would be in readonly memory.
|
||||||
|
dnl
|
||||||
|
dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
|
||||||
|
dnl let the compiler decide how to represent Xt's strings which were #define'd.
|
||||||
|
dnl That does not solve the problem of using the block of Xt's strings which
|
||||||
|
dnl are compiled into the library (and is less efficient than one might want).
|
||||||
|
dnl
|
||||||
|
dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
|
||||||
|
dnl when compiling the library and compiling using the library, to tell the
|
||||||
|
dnl compiler that String is const.
|
||||||
|
AC_DEFUN([CF_CONST_X_STRING],
|
||||||
|
[
|
||||||
|
AC_REQUIRE([AC_PATH_XTRA])
|
||||||
|
|
||||||
|
CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
|
||||||
|
|
||||||
|
AC_TRY_COMPILE(
|
||||||
|
[
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <X11/Intrinsic.h>
|
||||||
|
],
|
||||||
|
[String foo = malloc(1); (void)foo],[
|
||||||
|
|
||||||
|
AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
|
||||||
|
AC_TRY_COMPILE(
|
||||||
|
[
|
||||||
|
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
|
||||||
|
#undef XTSTRINGDEFINES /* X11R5 and later */
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <X11/Intrinsic.h>
|
||||||
|
],[String foo = malloc(1); *foo = 0],[
|
||||||
|
cf_cv_const_x_string=no
|
||||||
|
],[
|
||||||
|
cf_cv_const_x_string=yes
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
|
||||||
|
|
||||||
|
case $cf_cv_const_x_string in
|
||||||
|
(no)
|
||||||
|
CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
])
|
||||||
|
])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
|
dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
|
||||||
dnl ---------------
|
dnl ---------------
|
||||||
dnl You can always use "make -n" to see the actual options, but it's hard to
|
dnl You can always use "make -n" to see the actual options, but it's hard to
|
||||||
@ -345,7 +433,7 @@ if test "$with_no_leaks" = yes ; then
|
|||||||
fi
|
fi
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
|
dnl CF_GCC_ATTRIBUTES version: 18 updated: 2020/03/10 18:53:47
|
||||||
dnl -----------------
|
dnl -----------------
|
||||||
dnl Test for availability of useful gcc __attribute__ directives to quiet
|
dnl Test for availability of useful gcc __attribute__ directives to quiet
|
||||||
dnl compiler warnings. Though useful, not all are supported -- and contrary
|
dnl compiler warnings. Though useful, not all are supported -- and contrary
|
||||||
@ -389,7 +477,7 @@ cat > conftest.$ac_ext <<EOF
|
|||||||
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
|
extern void wow(char *,...) GCC_SCANFLIKE(1,2);
|
||||||
extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
|
extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
|
||||||
extern void foo(void) GCC_NORETURN;
|
extern void foo(void) GCC_NORETURN;
|
||||||
int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
|
int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
|
||||||
EOF
|
EOF
|
||||||
cf_printf_attribute=no
|
cf_printf_attribute=no
|
||||||
cf_scanf_attribute=no
|
cf_scanf_attribute=no
|
||||||
@ -455,9 +543,10 @@ rm -rf conftest*
|
|||||||
fi
|
fi
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
|
dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
|
||||||
dnl --------------
|
dnl --------------
|
||||||
dnl Find version of gcc
|
dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
|
||||||
|
dnl compatible), attempt to determine if icc/clang is actually used.
|
||||||
AC_DEFUN([CF_GCC_VERSION],[
|
AC_DEFUN([CF_GCC_VERSION],[
|
||||||
AC_REQUIRE([AC_PROG_CC])
|
AC_REQUIRE([AC_PROG_CC])
|
||||||
GCC_VERSION=none
|
GCC_VERSION=none
|
||||||
@ -467,14 +556,17 @@ if test "$GCC" = yes ; then
|
|||||||
test -z "$GCC_VERSION" && GCC_VERSION=unknown
|
test -z "$GCC_VERSION" && GCC_VERSION=unknown
|
||||||
AC_MSG_RESULT($GCC_VERSION)
|
AC_MSG_RESULT($GCC_VERSION)
|
||||||
fi
|
fi
|
||||||
|
CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
|
||||||
|
CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_GCC_WARNINGS version: 32 updated: 2015/04/12 15:39:00
|
dnl CF_GCC_WARNINGS version: 37 updated: 2020/01/05 20:04:12
|
||||||
dnl ---------------
|
dnl ---------------
|
||||||
dnl Check if the compiler supports useful warning options. There's a few that
|
dnl Check if the compiler supports useful warning options. There's a few that
|
||||||
dnl we don't use, simply because they're too noisy:
|
dnl we don't use, simply because they're too noisy:
|
||||||
dnl
|
dnl
|
||||||
dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
|
dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
|
||||||
|
dnl -Winline (usually not worthwhile)
|
||||||
dnl -Wredundant-decls (system headers make this too noisy)
|
dnl -Wredundant-decls (system headers make this too noisy)
|
||||||
dnl -Wtraditional (combines too many unrelated messages, only a few useful)
|
dnl -Wtraditional (combines too many unrelated messages, only a few useful)
|
||||||
dnl -Wwrite-strings (too noisy, but should review occasionally). This
|
dnl -Wwrite-strings (too noisy, but should review occasionally). This
|
||||||
@ -491,14 +583,11 @@ dnl
|
|||||||
AC_DEFUN([CF_GCC_WARNINGS],
|
AC_DEFUN([CF_GCC_WARNINGS],
|
||||||
[
|
[
|
||||||
AC_REQUIRE([CF_GCC_VERSION])
|
AC_REQUIRE([CF_GCC_VERSION])
|
||||||
CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
|
if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
|
||||||
CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
|
|
||||||
|
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line __oline__ "${as_me:-configure}"
|
#line __oline__ "${as_me:-configure}"
|
||||||
int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
|
int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if test "$INTEL_COMPILER" = yes
|
if test "$INTEL_COMPILER" = yes
|
||||||
then
|
then
|
||||||
# The "-wdXXX" options suppress warnings:
|
# The "-wdXXX" options suppress warnings:
|
||||||
@ -533,8 +622,7 @@ then
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
CFLAGS="$cf_save_CFLAGS"
|
CFLAGS="$cf_save_CFLAGS"
|
||||||
|
elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
|
||||||
elif test "$GCC" = yes
|
|
||||||
then
|
then
|
||||||
AC_CHECKING([for $CC warning options])
|
AC_CHECKING([for $CC warning options])
|
||||||
cf_save_CFLAGS="$CFLAGS"
|
cf_save_CFLAGS="$CFLAGS"
|
||||||
@ -556,15 +644,12 @@ then
|
|||||||
Wpointer-arith \
|
Wpointer-arith \
|
||||||
Wshadow \
|
Wshadow \
|
||||||
Wstrict-prototypes \
|
Wstrict-prototypes \
|
||||||
Wundef $cf_gcc_warnings $cf_warn_CONST $1
|
Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
|
||||||
do
|
do
|
||||||
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
|
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
|
||||||
if AC_TRY_EVAL(ac_compile); then
|
if AC_TRY_EVAL(ac_compile); then
|
||||||
test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
|
test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
|
||||||
case $cf_opt in
|
case $cf_opt in
|
||||||
(Wcast-qual)
|
|
||||||
CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
|
|
||||||
;;
|
|
||||||
(Winline)
|
(Winline)
|
||||||
case $GCC_VERSION in
|
case $GCC_VERSION in
|
||||||
([[34]].*)
|
([[34]].*)
|
||||||
@ -590,7 +675,33 @@ rm -rf conftest*
|
|||||||
AC_SUBST(EXTRA_CFLAGS)
|
AC_SUBST(EXTRA_CFLAGS)
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_GNU_SOURCE version: 7 updated: 2016/08/05 05:15:37
|
dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
|
||||||
|
dnl ----------------
|
||||||
|
dnl Check for getopt's variables which are commonly defined in stdlib.h,
|
||||||
|
dnl unistd.h or (nonstandard) in getopt.h
|
||||||
|
AC_DEFUN([CF_GETOPT_HEADER],
|
||||||
|
[
|
||||||
|
AC_HAVE_HEADERS(unistd.h getopt.h)
|
||||||
|
AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
|
||||||
|
cf_cv_getopt_header=none
|
||||||
|
for cf_header in stdio.h stdlib.h unistd.h getopt.h
|
||||||
|
do
|
||||||
|
AC_TRY_COMPILE([
|
||||||
|
#include <$cf_header>],
|
||||||
|
[int x = optind; char *y = optarg],
|
||||||
|
[cf_cv_getopt_header=$cf_header
|
||||||
|
break])
|
||||||
|
done
|
||||||
|
])
|
||||||
|
if test $cf_cv_getopt_header != none ; then
|
||||||
|
AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
|
||||||
|
fi
|
||||||
|
if test $cf_cv_getopt_header = getopt.h ; then
|
||||||
|
AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
|
||||||
|
fi
|
||||||
|
])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
|
dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
|
||||||
dnl -------------
|
dnl -------------
|
||||||
dnl Check if we must define _GNU_SOURCE to get a reasonable value for
|
dnl Check if we must define _GNU_SOURCE to get a reasonable value for
|
||||||
dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
|
dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
|
||||||
@ -598,38 +709,106 @@ dnl (or misfeature) of glibc2, which breaks portability of many applications,
|
|||||||
dnl since it is interwoven with GNU extensions.
|
dnl since it is interwoven with GNU extensions.
|
||||||
dnl
|
dnl
|
||||||
dnl Well, yes we could work around it...
|
dnl Well, yes we could work around it...
|
||||||
|
dnl
|
||||||
|
dnl Parameters:
|
||||||
|
dnl $1 is the nominal value for _XOPEN_SOURCE
|
||||||
AC_DEFUN([CF_GNU_SOURCE],
|
AC_DEFUN([CF_GNU_SOURCE],
|
||||||
[
|
[
|
||||||
AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
|
cf_gnu_xopen_source=ifelse($1,,500,$1)
|
||||||
|
|
||||||
|
AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>],[
|
AC_TRY_COMPILE([#include <sys/types.h>],[
|
||||||
#ifndef _XOPEN_SOURCE
|
#if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
|
||||||
make an error
|
return 0;
|
||||||
#endif],
|
#elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
|
||||||
[cf_cv_gnu_source=no],
|
return 0;
|
||||||
[cf_save="$CPPFLAGS"
|
#else
|
||||||
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
|
# error not GNU C library
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>],[
|
#endif],
|
||||||
#ifdef _XOPEN_SOURCE
|
[cf_cv_gnu_library=yes],
|
||||||
make an error
|
[cf_cv_gnu_library=no])
|
||||||
#endif],
|
|
||||||
[cf_cv_gnu_source=no],
|
|
||||||
[cf_cv_gnu_source=yes])
|
|
||||||
CPPFLAGS="$cf_save"
|
|
||||||
])
|
|
||||||
])
|
])
|
||||||
|
|
||||||
if test "$cf_cv_gnu_source" = yes
|
if test x$cf_cv_gnu_library = xyes; then
|
||||||
then
|
|
||||||
AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
|
# With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
|
||||||
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
|
# was changed to help a little. newlib incorporated the change about 4
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>],[
|
# years later.
|
||||||
#ifdef _DEFAULT_SOURCE
|
AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
|
||||||
make an error
|
cf_save="$CPPFLAGS"
|
||||||
#endif],
|
CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
|
||||||
[cf_cv_default_source=no],
|
AC_TRY_COMPILE([#include <sys/types.h>],[
|
||||||
[cf_cv_default_source=yes])
|
#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
|
||||||
|
return 0;
|
||||||
|
#elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
|
# error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
|
||||||
|
#endif],
|
||||||
|
[cf_cv_gnu_library_219=yes],
|
||||||
|
[cf_cv_gnu_library_219=no])
|
||||||
|
CPPFLAGS="$cf_save"
|
||||||
])
|
])
|
||||||
test "$cf_cv_default_source" = yes && CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE"
|
|
||||||
|
if test "x$cf_cv_gnu_library_219" = xyes; then
|
||||||
|
cf_save="$CPPFLAGS"
|
||||||
|
AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
|
||||||
|
CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
|
||||||
|
AC_TRY_COMPILE([
|
||||||
|
#include <limits.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
],[
|
||||||
|
#if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
|
# error GNU C library is too old
|
||||||
|
#endif],
|
||||||
|
[cf_cv_gnu_dftsrc_219=yes],
|
||||||
|
[cf_cv_gnu_dftsrc_219=no])
|
||||||
|
])
|
||||||
|
test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
|
||||||
|
else
|
||||||
|
cf_cv_gnu_dftsrc_219=maybe
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
|
||||||
|
|
||||||
|
AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
|
||||||
|
AC_TRY_COMPILE([#include <sys/types.h>],[
|
||||||
|
#ifndef _XOPEN_SOURCE
|
||||||
|
#error expected _XOPEN_SOURCE to be defined
|
||||||
|
#endif],
|
||||||
|
[cf_cv_gnu_source=no],
|
||||||
|
[cf_save="$CPPFLAGS"
|
||||||
|
CF_ADD_CFLAGS(-D_GNU_SOURCE)
|
||||||
|
AC_TRY_COMPILE([#include <sys/types.h>],[
|
||||||
|
#ifdef _XOPEN_SOURCE
|
||||||
|
#error expected _XOPEN_SOURCE to be undefined
|
||||||
|
#endif],
|
||||||
|
[cf_cv_gnu_source=no],
|
||||||
|
[cf_cv_gnu_source=yes])
|
||||||
|
CPPFLAGS="$cf_save"
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
if test "$cf_cv_gnu_source" = yes
|
||||||
|
then
|
||||||
|
AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
|
||||||
|
CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
|
||||||
|
AC_TRY_COMPILE([#include <sys/types.h>],[
|
||||||
|
#ifdef _DEFAULT_SOURCE
|
||||||
|
#error expected _DEFAULT_SOURCE to be undefined
|
||||||
|
#endif],
|
||||||
|
[cf_cv_default_source=no],
|
||||||
|
[cf_cv_default_source=yes])
|
||||||
|
])
|
||||||
|
if test "$cf_cv_default_source" = yes
|
||||||
|
then
|
||||||
|
CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
@ -935,7 +1114,7 @@ case ".[$]$1" in
|
|||||||
esac
|
esac
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_POSIX_C_SOURCE version: 9 updated: 2015/04/12 15:39:00
|
dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
|
||||||
dnl -----------------
|
dnl -----------------
|
||||||
dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
|
dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
|
||||||
dnl
|
dnl
|
||||||
@ -950,7 +1129,10 @@ dnl
|
|||||||
dnl Parameters:
|
dnl Parameters:
|
||||||
dnl $1 is the nominal value for _POSIX_C_SOURCE
|
dnl $1 is the nominal value for _POSIX_C_SOURCE
|
||||||
AC_DEFUN([CF_POSIX_C_SOURCE],
|
AC_DEFUN([CF_POSIX_C_SOURCE],
|
||||||
[
|
[AC_REQUIRE([CF_POSIX_VISIBLE])dnl
|
||||||
|
|
||||||
|
if test "$cf_cv_posix_visible" = no; then
|
||||||
|
|
||||||
cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
|
cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
|
||||||
|
|
||||||
cf_save_CFLAGS="$CFLAGS"
|
cf_save_CFLAGS="$CFLAGS"
|
||||||
@ -988,7 +1170,8 @@ make an error
|
|||||||
fi
|
fi
|
||||||
CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
|
CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
|
||||||
CFLAGS="$cf_trim_CFLAGS"
|
CFLAGS="$cf_trim_CFLAGS"
|
||||||
CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
|
CPPFLAGS="$cf_trim_CPPFLAGS"
|
||||||
|
CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
|
||||||
CF_MSG_LOG(if the second compile does not leave our definition intact error)
|
CF_MSG_LOG(if the second compile does not leave our definition intact error)
|
||||||
AC_TRY_COMPILE([#include <sys/types.h>],[
|
AC_TRY_COMPILE([#include <sys/types.h>],[
|
||||||
#ifndef _POSIX_C_SOURCE
|
#ifndef _POSIX_C_SOURCE
|
||||||
@ -1006,6 +1189,35 @@ if test "$cf_cv_posix_c_source" != no ; then
|
|||||||
CF_ADD_CFLAGS($cf_cv_posix_c_source)
|
CF_ADD_CFLAGS($cf_cv_posix_c_source)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
fi # cf_cv_posix_visible
|
||||||
|
|
||||||
|
])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
|
dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
|
||||||
|
dnl ----------------
|
||||||
|
dnl POSIX documents test-macros which an application may set before any system
|
||||||
|
dnl headers are included to make features available.
|
||||||
|
dnl
|
||||||
|
dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
|
||||||
|
dnl diverged from POSIX in 2002 by setting symbols which make all of the most
|
||||||
|
dnl recent features visible in the system header files unless the application
|
||||||
|
dnl overrides the corresponding test-macros. Doing that introduces portability
|
||||||
|
dnl problems.
|
||||||
|
dnl
|
||||||
|
dnl This macro makes a special check for the symbols used for this, to avoid a
|
||||||
|
dnl conflicting definition.
|
||||||
|
AC_DEFUN([CF_POSIX_VISIBLE],
|
||||||
|
[
|
||||||
|
AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
|
||||||
|
AC_TRY_COMPILE([#include <stdio.h>],[
|
||||||
|
#if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
|
||||||
|
&& defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
|
||||||
|
&& defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
|
||||||
|
&& defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
|
||||||
|
#error conflicting symbols found
|
||||||
|
#endif
|
||||||
|
],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
|
||||||
|
])
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
|
dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
|
||||||
@ -1017,11 +1229,15 @@ AC_PROG_AWK
|
|||||||
test -z "$AWK" && AC_MSG_ERROR(No awk program found)
|
test -z "$AWK" && AC_MSG_ERROR(No awk program found)
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
|
dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
|
||||||
dnl ----------
|
dnl ----------
|
||||||
dnl standard check for CC, plus followup sanity checks
|
dnl standard check for CC, plus followup sanity checks
|
||||||
dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
|
dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
|
||||||
AC_DEFUN([CF_PROG_CC],[
|
AC_DEFUN([CF_PROG_CC],[
|
||||||
|
CF_ACVERSION_CHECK(2.53,
|
||||||
|
[AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
|
||||||
|
AC_REQUIRE([AC_PROG_CC])],
|
||||||
|
[])
|
||||||
ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
|
ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
|
||||||
CF_GCC_VERSION
|
CF_GCC_VERSION
|
||||||
CF_ACVERSION_CHECK(2.52,
|
CF_ACVERSION_CHECK(2.52,
|
||||||
@ -1030,13 +1246,14 @@ CF_ACVERSION_CHECK(2.52,
|
|||||||
CF_CC_ENV_FLAGS
|
CF_CC_ENV_FLAGS
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_PROG_GROFF version: 2 updated: 2015/07/04 11:16:27
|
dnl CF_PROG_GROFF version: 3 updated: 2018/01/07 13:16:19
|
||||||
dnl -------------
|
dnl -------------
|
||||||
dnl Check if groff is available, for cases (such as html output) where nroff
|
dnl Check if groff is available, for cases (such as html output) where nroff
|
||||||
dnl is not enough.
|
dnl is not enough.
|
||||||
AC_DEFUN([CF_PROG_GROFF],[
|
AC_DEFUN([CF_PROG_GROFF],[
|
||||||
AC_PATH_PROG(GROFF_PATH,groff,no)
|
AC_PATH_PROG(GROFF_PATH,groff,no)
|
||||||
AC_PATH_PROG(NROFF_PATH,nroff,no)
|
AC_PATH_PROGS(NROFF_PATH,nroff mandoc,no)
|
||||||
|
AC_PATH_PROG(TBL_PATH,tbl,cat)
|
||||||
if test "x$GROFF_PATH" = xno
|
if test "x$GROFF_PATH" = xno
|
||||||
then
|
then
|
||||||
NROFF_NOTE=
|
NROFF_NOTE=
|
||||||
@ -1049,11 +1266,16 @@ AC_SUBST(GROFF_NOTE)
|
|||||||
AC_SUBST(NROFF_NOTE)
|
AC_SUBST(NROFF_NOTE)
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54
|
dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37
|
||||||
dnl ------------
|
dnl ------------
|
||||||
AC_DEFUN([CF_PROG_LINT],
|
AC_DEFUN([CF_PROG_LINT],
|
||||||
[
|
[
|
||||||
AC_CHECK_PROGS(LINT, lint cppcheck splint)
|
AC_CHECK_PROGS(LINT, lint cppcheck splint)
|
||||||
|
case "x$LINT" in
|
||||||
|
(xcppcheck|x*/cppcheck)
|
||||||
|
test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
AC_SUBST(LINT_OPTS)
|
AC_SUBST(LINT_OPTS)
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
@ -1074,7 +1296,7 @@ $1=`echo "$2" | \
|
|||||||
-e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
|
-e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
|
dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
|
||||||
dnl -------------------
|
dnl -------------------
|
||||||
dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
|
dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
|
||||||
dnl can define it successfully.
|
dnl can define it successfully.
|
||||||
@ -1090,7 +1312,7 @@ make an error
|
|||||||
#endif],
|
#endif],
|
||||||
[cf_cv_xopen_source=no],
|
[cf_cv_xopen_source=no],
|
||||||
[cf_save="$CPPFLAGS"
|
[cf_save="$CPPFLAGS"
|
||||||
CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
|
CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
|
||||||
AC_TRY_COMPILE([
|
AC_TRY_COMPILE([
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -1130,6 +1352,14 @@ AC_DEFUN([CF_VERBOSE],
|
|||||||
CF_MSG_LOG([$1])
|
CF_MSG_LOG([$1])
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
|
dnl CF_WITHOUT_X version: 1 updated: 2020/03/03 18:27:24
|
||||||
|
dnl ------------
|
||||||
|
dnl Use this to cancel the check for X headers/libraries which would be pulled
|
||||||
|
dnl in via CF_GCC_WARNINGS.
|
||||||
|
define([CF_WITHOUT_X],
|
||||||
|
AC_DEFUN([CF_CONST_X_STRING],[echo "skipping X-const check";])dnl
|
||||||
|
[])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
|
dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
|
||||||
dnl ----------------
|
dnl ----------------
|
||||||
dnl Configure-option for dbmalloc. The optional parameter is used to override
|
dnl Configure-option for dbmalloc. The optional parameter is used to override
|
||||||
@ -1160,9 +1390,13 @@ if test "$with_dmalloc" = yes ; then
|
|||||||
fi
|
fi
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_WITH_MAN2HTML version: 5 updated: 2015/08/20 04:51:36
|
dnl CF_WITH_MAN2HTML version: 8 updated: 2018/06/27 18:44:03
|
||||||
dnl ----------------
|
dnl ----------------
|
||||||
dnl Check for man2html and groff. Optionally prefer man2html over groff.
|
dnl Check for man2html and groff. Prefer man2html over groff, but use groff
|
||||||
|
dnl as a fallback. See
|
||||||
|
dnl
|
||||||
|
dnl http://invisible-island.net/scripts/man2html.html
|
||||||
|
dnl
|
||||||
dnl Generate a shell script which hides the differences between the two.
|
dnl Generate a shell script which hides the differences between the two.
|
||||||
dnl
|
dnl
|
||||||
dnl We name that "man2html.tmp".
|
dnl We name that "man2html.tmp".
|
||||||
@ -1171,11 +1405,35 @@ dnl The shell script can be removed later, e.g., using "make distclean".
|
|||||||
AC_DEFUN([CF_WITH_MAN2HTML],[
|
AC_DEFUN([CF_WITH_MAN2HTML],[
|
||||||
AC_REQUIRE([CF_PROG_GROFF])
|
AC_REQUIRE([CF_PROG_GROFF])
|
||||||
|
|
||||||
|
case "x${with_man2html}" in
|
||||||
|
(xno)
|
||||||
|
cf_man2html=no
|
||||||
|
;;
|
||||||
|
(x|xyes)
|
||||||
|
AC_PATH_PROG(cf_man2html,man2html,no)
|
||||||
|
case "x$cf_man2html" in
|
||||||
|
(x/*)
|
||||||
|
AC_MSG_CHECKING(for the modified Earl Hood script)
|
||||||
|
if ( $cf_man2html -help 2>&1 | grep 'Make an index of headers at the end' >/dev/null )
|
||||||
|
then
|
||||||
|
cf_man2html_ok=yes
|
||||||
|
else
|
||||||
|
cf_man2html=no
|
||||||
|
cf_man2html_ok=no
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT($cf_man2html_ok)
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
cf_man2html=no
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
|
||||||
AC_MSG_CHECKING(for program to convert manpage to html)
|
AC_MSG_CHECKING(for program to convert manpage to html)
|
||||||
AC_ARG_WITH(man2html,
|
AC_ARG_WITH(man2html,
|
||||||
[ --with-man2html=XXX use XXX rather than groff],
|
[ --with-man2html=XXX use XXX rather than groff],
|
||||||
[cf_man2html=$withval],
|
[cf_man2html=$withval],
|
||||||
[cf_man2html=$GROFF_PATH])
|
[cf_man2html=$cf_man2html])
|
||||||
|
|
||||||
cf_with_groff=no
|
cf_with_groff=no
|
||||||
|
|
||||||
@ -1223,7 +1481,7 @@ then
|
|||||||
MAN2HTML_NOTE="$GROFF_NOTE"
|
MAN2HTML_NOTE="$GROFF_NOTE"
|
||||||
MAN2HTML_PATH="$GROFF_PATH"
|
MAN2HTML_PATH="$GROFF_PATH"
|
||||||
cat >>$MAN2HTML_TEMP <<CF_EOF
|
cat >>$MAN2HTML_TEMP <<CF_EOF
|
||||||
$SHELL -c "tbl \${ROOT}.\${TYPE} | $GROFF_PATH -P -o0 -I\${ROOT}_ -Thtml -\${MACS}"
|
$SHELL -c "$TBL_PATH \${ROOT}.\${TYPE} | $GROFF_PATH -P -o0 -I\${ROOT}_ -Thtml -\${MACS}"
|
||||||
CF_EOF
|
CF_EOF
|
||||||
else
|
else
|
||||||
MAN2HTML_NOTE=""
|
MAN2HTML_NOTE=""
|
||||||
@ -1238,7 +1496,7 @@ else
|
|||||||
MARKER
|
MARKER
|
||||||
CF_EOF
|
CF_EOF
|
||||||
|
|
||||||
LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C nroff -man conftest.in >conftest.out
|
LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C $NROFF_PATH -man conftest.in >conftest.out
|
||||||
|
|
||||||
cf_man2html_1st=`fgrep -n MARKER conftest.out |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'`
|
cf_man2html_1st=`fgrep -n MARKER conftest.out |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'`
|
||||||
cf_man2html_top=`expr $cf_man2html_1st - 2`
|
cf_man2html_top=`expr $cf_man2html_1st - 2`
|
||||||
@ -1266,8 +1524,8 @@ CF_EOF
|
|||||||
CF_EOF
|
CF_EOF
|
||||||
done
|
done
|
||||||
|
|
||||||
LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C nroff -man conftest.in >conftest.out
|
LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C $NROFF_PATH -man conftest.in >conftest.out
|
||||||
cf_man2html_page=`fgrep -n HEAD1 conftest.out |tail -n 1 |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'`
|
cf_man2html_page=`fgrep -n HEAD1 conftest.out |sed -n '$p' |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'`
|
||||||
test -z "$cf_man2html_page" && cf_man2html_page=99999
|
test -z "$cf_man2html_page" && cf_man2html_page=99999
|
||||||
test "$cf_man2html_page" -gt 100 && cf_man2html_page=99999
|
test "$cf_man2html_page" -gt 100 && cf_man2html_page=99999
|
||||||
|
|
||||||
@ -1279,10 +1537,10 @@ CF_EOF
|
|||||||
MAN2HTML_OPTS="\$MAN2HTML_OPTS -index -title="\$ROOT\(\$TYPE\)" -compress -pgsize $cf_man2html_page"
|
MAN2HTML_OPTS="\$MAN2HTML_OPTS -index -title="\$ROOT\(\$TYPE\)" -compress -pgsize $cf_man2html_page"
|
||||||
case \${TYPE} in
|
case \${TYPE} in
|
||||||
(ms)
|
(ms)
|
||||||
tbl \${ROOT}.\${TYPE} | nroff -\${MACS} | \$MAN2HTML_PATH -topm=0 -botm=0 \$MAN2HTML_OPTS
|
$TBL_PATH \${ROOT}.\${TYPE} | $NROFF_PATH -\${MACS} | \$MAN2HTML_PATH -topm=0 -botm=0 \$MAN2HTML_OPTS
|
||||||
;;
|
;;
|
||||||
(*)
|
(*)
|
||||||
tbl \${ROOT}.\${TYPE} | nroff -\${MACS} | \$MAN2HTML_PATH $cf_man2html_top_bot \$MAN2HTML_OPTS
|
$TBL_PATH \${ROOT}.\${TYPE} | $NROFF_PATH -\${MACS} | \$MAN2HTML_PATH $cf_man2html_top_bot \$MAN2HTML_OPTS
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
CF_EOF
|
CF_EOF
|
||||||
@ -1326,7 +1584,7 @@ fi
|
|||||||
fi
|
fi
|
||||||
])dnl
|
])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
dnl CF_XOPEN_SOURCE version: 52 updated: 2016/08/27 12:21:42
|
dnl CF_XOPEN_SOURCE version: 55 updated: 2018/12/31 20:46:17
|
||||||
dnl ---------------
|
dnl ---------------
|
||||||
dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
|
dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
|
||||||
dnl or adapt to the vendor's definitions to get equivalent functionality,
|
dnl or adapt to the vendor's definitions to get equivalent functionality,
|
||||||
@ -1337,6 +1595,9 @@ dnl $1 is the nominal value for _XOPEN_SOURCE
|
|||||||
dnl $2 is the nominal value for _POSIX_C_SOURCE
|
dnl $2 is the nominal value for _POSIX_C_SOURCE
|
||||||
AC_DEFUN([CF_XOPEN_SOURCE],[
|
AC_DEFUN([CF_XOPEN_SOURCE],[
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
|
AC_REQUIRE([CF_POSIX_VISIBLE])
|
||||||
|
|
||||||
|
if test "$cf_cv_posix_visible" = no; then
|
||||||
|
|
||||||
cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
|
cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
|
||||||
cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
|
cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
|
||||||
@ -1356,7 +1617,7 @@ case $host_os in
|
|||||||
cf_xopen_source="-D_DARWIN_C_SOURCE"
|
cf_xopen_source="-D_DARWIN_C_SOURCE"
|
||||||
cf_XOPEN_SOURCE=
|
cf_XOPEN_SOURCE=
|
||||||
;;
|
;;
|
||||||
(freebsd*|dragonfly*)
|
(freebsd*|dragonfly*|midnightbsd*)
|
||||||
# 5.x headers associate
|
# 5.x headers associate
|
||||||
# _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
|
# _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
|
||||||
# _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
|
# _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
|
||||||
@ -1375,7 +1636,7 @@ case $host_os in
|
|||||||
cf_XOPEN_SOURCE=
|
cf_XOPEN_SOURCE=
|
||||||
;;
|
;;
|
||||||
(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
|
(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
|
||||||
CF_GNU_SOURCE
|
CF_GNU_SOURCE($cf_XOPEN_SOURCE)
|
||||||
;;
|
;;
|
||||||
(minix*)
|
(minix*)
|
||||||
cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
|
cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
|
||||||
@ -1451,4 +1712,5 @@ make an error
|
|||||||
CF_TRY_XOPEN_SOURCE
|
CF_TRY_XOPEN_SOURCE
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
fi # cf_cv_posix_visible
|
||||||
])
|
])
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @Id: skel2c,v 1.4 2016/06/07 00:26:09 tom Exp @
|
* @Id: skel2c,v 1.4 2016/06/07 00:26:09 tom Exp @
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* @Id: btyaccpar.skel,v 1.6 2017/04/30 23:40:34 tom Exp @ */
|
/* @Id: btyaccpar.skel,v 1.10 2018/05/25 01:03:46 tom Exp @ */
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
|
||||||
@ -78,8 +78,9 @@ const char *const tables[] =
|
|||||||
const char *const global_vars[] =
|
const char *const global_vars[] =
|
||||||
{
|
{
|
||||||
"",
|
"",
|
||||||
|
"#if YYDEBUG",
|
||||||
"int yydebug;",
|
"int yydebug;",
|
||||||
"int yynerrs;",
|
"#endif",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -90,6 +91,8 @@ const char *const impure_vars[] =
|
|||||||
"int yychar;",
|
"int yychar;",
|
||||||
"YYSTYPE yyval;",
|
"YYSTYPE yyval;",
|
||||||
"YYSTYPE yylval;",
|
"YYSTYPE yylval;",
|
||||||
|
"int yynerrs;",
|
||||||
|
"",
|
||||||
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
||||||
"YYLTYPE yyloc; /* position returned by actions */",
|
"YYLTYPE yyloc; /* position returned by actions */",
|
||||||
"YYLTYPE yylloc; /* position from the lexer */",
|
"YYLTYPE yylloc; /* position from the lexer */",
|
||||||
@ -107,17 +110,17 @@ const char *const hdr_defs[] =
|
|||||||
"{ \\",
|
"{ \\",
|
||||||
" if (n == 0) \\",
|
" if (n == 0) \\",
|
||||||
" { \\",
|
" { \\",
|
||||||
" (loc).first_line = ((rhs)[-1]).last_line; \\",
|
" (loc).first_line = YYRHSLOC(rhs, 0).last_line; \\",
|
||||||
" (loc).first_column = ((rhs)[-1]).last_column; \\",
|
" (loc).first_column = YYRHSLOC(rhs, 0).last_column; \\",
|
||||||
" (loc).last_line = ((rhs)[-1]).last_line; \\",
|
" (loc).last_line = YYRHSLOC(rhs, 0).last_line; \\",
|
||||||
" (loc).last_column = ((rhs)[-1]).last_column; \\",
|
" (loc).last_column = YYRHSLOC(rhs, 0).last_column; \\",
|
||||||
" } \\",
|
" } \\",
|
||||||
" else \\",
|
" else \\",
|
||||||
" { \\",
|
" { \\",
|
||||||
" (loc).first_line = ((rhs)[ 0 ]).first_line; \\",
|
" (loc).first_line = YYRHSLOC(rhs, 1).first_line; \\",
|
||||||
" (loc).first_column = ((rhs)[ 0 ]).first_column; \\",
|
" (loc).first_column = YYRHSLOC(rhs, 1).first_column; \\",
|
||||||
" (loc).last_line = ((rhs)[n-1]).last_line; \\",
|
" (loc).last_line = YYRHSLOC(rhs, n).last_line; \\",
|
||||||
" (loc).last_column = ((rhs)[n-1]).last_column; \\",
|
" (loc).last_column = YYRHSLOC(rhs, n).last_column; \\",
|
||||||
" } \\",
|
" } \\",
|
||||||
"} while (0)",
|
"} while (0)",
|
||||||
"#endif /* YYLLOC_DEFAULT */",
|
"#endif /* YYLLOC_DEFAULT */",
|
||||||
@ -232,6 +235,8 @@ const char *const body_vars[] =
|
|||||||
" int yychar;",
|
" int yychar;",
|
||||||
" YYSTYPE yyval;",
|
" YYSTYPE yyval;",
|
||||||
" YYSTYPE yylval;",
|
" YYSTYPE yylval;",
|
||||||
|
" int yynerrs;",
|
||||||
|
"",
|
||||||
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
||||||
" YYLTYPE yyloc; /* position returned by actions */",
|
" YYLTYPE yyloc; /* position returned by actions */",
|
||||||
" YYLTYPE yylloc; /* position from the lexer */",
|
" YYLTYPE yylloc; /* position from the lexer */",
|
||||||
@ -436,7 +441,7 @@ const char *const body_2[] =
|
|||||||
"#endif /* YYBTYACC */",
|
"#endif /* YYBTYACC */",
|
||||||
#endif /* defined(YYBTYACC) */
|
#endif /* defined(YYBTYACC) */
|
||||||
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
||||||
" YYLTYPE yyerror_loc_range[2]; /* position of error start & end */",
|
" YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */",
|
||||||
"#endif",
|
"#endif",
|
||||||
"#if YYDEBUG",
|
"#if YYDEBUG",
|
||||||
" const char *yys;",
|
" const char *yys;",
|
||||||
@ -525,10 +530,10 @@ const char *const body_3[] =
|
|||||||
" size_t s = (size_t) (yylvlim - yylvals);",
|
" size_t s = (size_t) (yylvlim - yylvals);",
|
||||||
"",
|
"",
|
||||||
" s += YYLVQUEUEGROWTH;",
|
" s += YYLVQUEUEGROWTH;",
|
||||||
" if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;",
|
" if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;",
|
||||||
" if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;",
|
" if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;",
|
||||||
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
||||||
" if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;",
|
" if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;",
|
||||||
"#endif",
|
"#endif",
|
||||||
" yylvp = yylve = yylvals + p;",
|
" yylvp = yylve = yylvals + p;",
|
||||||
" yylvlim = yylvals + s;",
|
" yylvlim = yylvals + s;",
|
||||||
@ -645,7 +650,7 @@ const char *const body_3[] =
|
|||||||
" /* If this is a first conflict in the stack, start saving lexemes */",
|
" /* If this is a first conflict in the stack, start saving lexemes */",
|
||||||
" if (!yylexemes)",
|
" if (!yylexemes)",
|
||||||
" {",
|
" {",
|
||||||
" yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));",
|
" yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));",
|
||||||
" if (yylexemes == NULL) goto yyenomem;",
|
" if (yylexemes == NULL) goto yyenomem;",
|
||||||
" yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));",
|
" yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));",
|
||||||
" if (yylvals == NULL) goto yyenomem;",
|
" if (yylvals == NULL) goto yyenomem;",
|
||||||
@ -858,7 +863,7 @@ const char *const body_3[] =
|
|||||||
"",
|
"",
|
||||||
" YYERROR_CALL(\"syntax error\");",
|
" YYERROR_CALL(\"syntax error\");",
|
||||||
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
||||||
" yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */",
|
" yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */",
|
||||||
"#endif",
|
"#endif",
|
||||||
"",
|
"",
|
||||||
"#if !YYBTYACC",
|
"#if !YYBTYACC",
|
||||||
@ -887,7 +892,7 @@ const char *const body_3[] =
|
|||||||
" *++yystack.l_mark = yylval;",
|
" *++yystack.l_mark = yylval;",
|
||||||
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
||||||
" /* lookahead position is error end position */",
|
" /* lookahead position is error end position */",
|
||||||
" yyerror_loc_range[1] = yylloc;",
|
" yyerror_loc_range[2] = yylloc;",
|
||||||
" YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */",
|
" YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */",
|
||||||
" *++yystack.p_mark = yyloc;",
|
" *++yystack.p_mark = yyloc;",
|
||||||
"#endif",
|
"#endif",
|
||||||
@ -903,7 +908,7 @@ const char *const body_3[] =
|
|||||||
" if (yystack.s_mark <= yystack.s_base) goto yyabort;",
|
" if (yystack.s_mark <= yystack.s_base) goto yyabort;",
|
||||||
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
||||||
" /* the current TOS position is the error start position */",
|
" /* the current TOS position is the error start position */",
|
||||||
" yyerror_loc_range[0] = *yystack.p_mark;",
|
" yyerror_loc_range[1] = *yystack.p_mark;",
|
||||||
"#endif",
|
"#endif",
|
||||||
"#if defined(YYDESTRUCT_CALL)",
|
"#if defined(YYDESTRUCT_CALL)",
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
@ -997,10 +1002,10 @@ const char *const body_3[] =
|
|||||||
"#endif /* YYBTYACC */",
|
"#endif /* YYBTYACC */",
|
||||||
#endif /* defined(YYBTYACC) */
|
#endif /* defined(YYBTYACC) */
|
||||||
" {",
|
" {",
|
||||||
" YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);",
|
" YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);",
|
||||||
" /* just in case YYERROR is invoked within the action, save",
|
" /* just in case YYERROR is invoked within the action, save",
|
||||||
" the start of the rhs as the error start position */",
|
" the start of the rhs as the error start position */",
|
||||||
" yyerror_loc_range[0] = yystack.p_mark[1-yym];",
|
" yyerror_loc_range[1] = yystack.p_mark[1-yym];",
|
||||||
" }",
|
" }",
|
||||||
"#endif",
|
"#endif",
|
||||||
"",
|
"",
|
||||||
@ -1068,12 +1073,12 @@ const char *const trailer[] =
|
|||||||
" size_t s = (size_t) (yylvlim - yylvals);",
|
" size_t s = (size_t) (yylvlim - yylvals);",
|
||||||
"",
|
"",
|
||||||
" s += YYLVQUEUEGROWTH;",
|
" s += YYLVQUEUEGROWTH;",
|
||||||
" if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)",
|
" if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)",
|
||||||
" goto yyenomem;",
|
" goto yyenomem;",
|
||||||
" if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)",
|
" if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)",
|
||||||
" goto yyenomem;",
|
" goto yyenomem;",
|
||||||
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
"#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)",
|
||||||
" if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)",
|
" if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)",
|
||||||
" goto yyenomem;",
|
" goto yyenomem;",
|
||||||
"#endif",
|
"#endif",
|
||||||
" yylvp = yylve = yylvals + p;",
|
" yylvp = yylve = yylvals + p;",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: btyaccpar.skel,v 1.7 2017/05/01 00:13:19 tom Exp $ */
|
/* $Id: btyaccpar.skel,v 1.11 2018/06/10 00:41:06 Tom.Shields Exp $ */
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
|
||||||
@ -53,14 +53,17 @@ extern const char *const yyrule[];
|
|||||||
#endif
|
#endif
|
||||||
%% global_vars
|
%% global_vars
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
%% impure_vars
|
%% impure_vars
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -74,17 +77,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -185,6 +188,8 @@ static YYINT *yylexemes = 0;
|
|||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -371,7 +376,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
%%endif
|
%%endif
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -449,10 +454,10 @@ yyloop:
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -563,7 +568,7 @@ yyloop:
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -773,7 +778,7 @@ yyerrhandler:
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -802,7 +807,7 @@ yyinrecovery:
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -818,7 +823,7 @@ yyinrecovery:
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
%%ifdef YYBTYACC
|
%%ifdef YYBTYACC
|
||||||
@ -904,10 +909,10 @@ yyreduce:
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
%%endif
|
%%endif
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -968,12 +973,12 @@ yyreduce:
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
869
contrib/byacc/config.guess
vendored
869
contrib/byacc/config.guess
vendored
File diff suppressed because it is too large
Load Diff
2788
contrib/byacc/config.sub
vendored
2788
contrib/byacc/config.sub
vendored
File diff suppressed because it is too large
Load Diff
@ -21,16 +21,52 @@
|
|||||||
/* Define if you have the <fcntl.h> header file. */
|
/* Define if you have the <fcntl.h> header file. */
|
||||||
#undef HAVE_FCNTL_H
|
#undef HAVE_FCNTL_H
|
||||||
|
|
||||||
|
/* Define if you have the `getopt' function. */
|
||||||
|
#undef HAVE_GETOPT
|
||||||
|
|
||||||
|
/* Define if you have the <getopt.h> header file. */
|
||||||
|
#undef HAVE_GETOPT_H
|
||||||
|
|
||||||
|
/* Define to 1 if getopt variables are declared in header */
|
||||||
|
#undef HAVE_GETOPT_HEADER
|
||||||
|
|
||||||
|
/* Define if you have the <inttypes.h> header file. */
|
||||||
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
/* Define if you have the `dbmalloc' library (-ldbmalloc). */
|
/* Define if you have the `dbmalloc' library (-ldbmalloc). */
|
||||||
#undef HAVE_LIBDBMALLOC
|
#undef HAVE_LIBDBMALLOC
|
||||||
|
|
||||||
/* Define if you have the `dmalloc' library (-ldmalloc). */
|
/* Define if you have the `dmalloc' library (-ldmalloc). */
|
||||||
#undef HAVE_LIBDMALLOC
|
#undef HAVE_LIBDMALLOC
|
||||||
|
|
||||||
|
/* Define if you have the <memory.h> header file. */
|
||||||
|
#undef HAVE_MEMORY_H
|
||||||
|
|
||||||
/* Define to 1 if mkstemp() is available and working. */
|
/* Define to 1 if mkstemp() is available and working. */
|
||||||
#undef HAVE_MKSTEMP
|
#undef HAVE_MKSTEMP
|
||||||
|
|
||||||
/* Define to 1 if vsnprintf() is available and working. */
|
/* Define if you have the <stdint.h> header file. */
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
/* Define if you have the <stdlib.h> header file. */
|
||||||
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
|
/* Define if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define if you have the <sys/stat.h> header file. */
|
||||||
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
|
/* Define if you have the <sys/types.h> header file. */
|
||||||
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
|
||||||
|
/* Define if you have the <unistd.h> header file. */
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define if you have the `vsnprintf' function. */
|
||||||
#undef HAVE_VSNPRINTF
|
#undef HAVE_VSNPRINTF
|
||||||
|
|
||||||
/* Define to maximum table size (default: 32500) */
|
/* Define to maximum table size (default: 32500) */
|
||||||
@ -39,9 +75,15 @@
|
|||||||
/* Define to 1 if filesystem supports mixed-case filenames. */
|
/* Define to 1 if filesystem supports mixed-case filenames. */
|
||||||
#undef MIXEDCASE_FILENAMES
|
#undef MIXEDCASE_FILENAMES
|
||||||
|
|
||||||
|
/* Define to 1 if we must include getopt.h */
|
||||||
|
#undef NEED_GETOPT_H
|
||||||
|
|
||||||
/* Define to 1 if you want to perform memory-leak testing. */
|
/* Define to 1 if you want to perform memory-leak testing. */
|
||||||
#undef NO_LEAKS
|
#undef NO_LEAKS
|
||||||
|
|
||||||
|
/* Define if you have the ANSI C header files. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
/* Define to the system name. */
|
/* Define to the system name. */
|
||||||
#undef SYSTEM_NAME
|
#undef SYSTEM_NAME
|
||||||
|
|
||||||
@ -59,3 +101,6 @@
|
|||||||
|
|
||||||
/* Define to 1 if you want to perform memory-leak testing. */
|
/* Define to 1 if you want to perform memory-leak testing. */
|
||||||
#undef YY_NO_LEAKS
|
#undef YY_NO_LEAKS
|
||||||
|
|
||||||
|
/* Define to `int' if <sys/types.h> does not define. */
|
||||||
|
#undef mode_t
|
||||||
|
2424
contrib/byacc/configure
vendored
2424
contrib/byacc/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
|||||||
dnl Process this file with 'autoconf' to produce a 'configure' script
|
dnl Process this file with 'autoconf' to produce a 'configure' script
|
||||||
dnl $Id: configure.in,v 1.21 2015/07/05 22:07:36 tom Exp $
|
dnl $Id: configure.in,v 1.23 2020/03/10 22:53:47 tom Exp $
|
||||||
AC_PREREQ(2.52.20011201)
|
AC_PREREQ(2.52.20200111)
|
||||||
AC_REVISION($Revision: 1.21 $)
|
AC_REVISION($Revision: 1.23 $)
|
||||||
AC_INIT(main.c)
|
AC_INIT(main.c)
|
||||||
AC_CONFIG_HEADER(config.h:config_h.in)
|
AC_CONFIG_HEADER(config.h:config_h.in)
|
||||||
|
|
||||||
@ -15,10 +15,13 @@ CF_MAKE_TAGS
|
|||||||
CF_PROG_AWK
|
CF_PROG_AWK
|
||||||
CF_PROG_LINT
|
CF_PROG_LINT
|
||||||
|
|
||||||
|
CF_WITHOUT_X
|
||||||
|
|
||||||
CF_XOPEN_SOURCE
|
CF_XOPEN_SOURCE
|
||||||
AC_CHECK_HEADERS(fcntl.h)
|
AC_CHECK_HEADERS(fcntl.h)
|
||||||
CF_MKSTEMP
|
CF_MKSTEMP
|
||||||
AC_HAVE_FUNCS(vsnprintf)
|
CF_GETOPT_HEADER
|
||||||
|
AC_HAVE_FUNCS(getopt vsnprintf)
|
||||||
|
|
||||||
AC_MSG_CHECKING(for maximum table size)
|
AC_MSG_CHECKING(for maximum table size)
|
||||||
AC_ARG_WITH([max-table-size],
|
AC_ARG_WITH([max-table-size],
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: defs.h,v 1.57 2017/04/30 23:29:11 tom Exp $ */
|
/* $Id: defs.h,v 1.65 2019/11/19 23:47:49 tom Exp $ */
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@ -101,39 +101,48 @@
|
|||||||
|
|
||||||
/* keyword codes */
|
/* keyword codes */
|
||||||
|
|
||||||
#define TOKEN 0
|
typedef enum
|
||||||
#define LEFT 1
|
{
|
||||||
#define RIGHT 2
|
TOKEN = 0
|
||||||
#define NONASSOC 3
|
,LEFT
|
||||||
#define MARK 4
|
,RIGHT
|
||||||
#define TEXT 5
|
,NONASSOC
|
||||||
#define TYPE 6
|
,MARK
|
||||||
#define START 7
|
,TEXT
|
||||||
#define UNION 8
|
,TYPE
|
||||||
#define IDENT 9
|
,START
|
||||||
#define EXPECT 10
|
,UNION
|
||||||
#define EXPECT_RR 11
|
,IDENT
|
||||||
#define PURE_PARSER 12
|
,EXPECT
|
||||||
#define PARSE_PARAM 13
|
,EXPECT_RR
|
||||||
#define LEX_PARAM 14
|
,PURE_PARSER
|
||||||
#define POSIX_YACC 15
|
,PARSE_PARAM
|
||||||
#define TOKEN_TABLE 16
|
,LEX_PARAM
|
||||||
#define ERROR_VERBOSE 17
|
,POSIX_YACC
|
||||||
#define XXXDEBUG 18
|
,TOKEN_TABLE
|
||||||
|
,ERROR_VERBOSE
|
||||||
|
,XXXDEBUG
|
||||||
|
,XCODE
|
||||||
|
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
#define LOCATIONS 19
|
,LOCATIONS
|
||||||
#define DESTRUCTOR 20
|
,DESTRUCTOR
|
||||||
#define INITIAL_ACTION 21
|
,INITIAL_ACTION
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
KEY_CASES;
|
||||||
|
|
||||||
/* symbol classes */
|
/* symbol classes */
|
||||||
|
|
||||||
#define UNKNOWN 0
|
typedef enum
|
||||||
#define TERM 1
|
{
|
||||||
#define NONTERM 2
|
UNKNOWN = 0
|
||||||
#define ACTION 3
|
,TERM
|
||||||
#define ARGUMENT 4
|
,NONTERM
|
||||||
|
,ACTION
|
||||||
|
,ARGUMENT
|
||||||
|
}
|
||||||
|
SYM_CASES;
|
||||||
|
|
||||||
/* the undefined value */
|
/* the undefined value */
|
||||||
|
|
||||||
@ -146,9 +155,10 @@
|
|||||||
|
|
||||||
/* character macros */
|
/* character macros */
|
||||||
|
|
||||||
#define IS_IDENT(c) (isalnum(c) || (c) == '_' || (c) == '.' || (c) == '$')
|
#define IS_NAME1(c) (isalpha(UCH(c)) || (c) == '_' || (c) == '$')
|
||||||
|
#define IS_NAME2(c) (isalnum(UCH(c)) || (c) == '_' || (c) == '$')
|
||||||
|
#define IS_IDENT(c) (isalnum(UCH(c)) || (c) == '_' || (c) == '.' || (c) == '$')
|
||||||
#define IS_OCTAL(c) ((c) >= '0' && (c) <= '7')
|
#define IS_OCTAL(c) ((c) >= '0' && (c) <= '7')
|
||||||
#define NUMERIC_VALUE(c) ((c) - '0')
|
|
||||||
|
|
||||||
/* symbol macros */
|
/* symbol macros */
|
||||||
|
|
||||||
@ -272,6 +282,7 @@ struct param
|
|||||||
|
|
||||||
/* global variables */
|
/* global variables */
|
||||||
|
|
||||||
|
extern char dflag2;
|
||||||
extern char dflag;
|
extern char dflag;
|
||||||
extern char gflag;
|
extern char gflag;
|
||||||
extern char iflag;
|
extern char iflag;
|
||||||
@ -411,6 +422,21 @@ extern param *parse_param;
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define ATTRIBUTE_NORETURN __attribute__((noreturn))
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
#define ATTRIBUTE_NORETURN __declspec(noreturn)
|
||||||
|
#else
|
||||||
|
#define ATTRIBUTE_NORETURN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(NDEBUG) && defined(_MSC_VER)
|
||||||
|
#define NODEFAULT __assume(0);
|
||||||
|
#else
|
||||||
|
#define NODEFAULT
|
||||||
|
#endif
|
||||||
|
#define NOTREACHED NODEFAULT
|
||||||
|
|
||||||
#ifndef GCC_UNUSED
|
#ifndef GCC_UNUSED
|
||||||
#if defined(__unused)
|
#if defined(__unused)
|
||||||
#define GCC_UNUSED __unused
|
#define GCC_UNUSED __unused
|
||||||
@ -438,20 +464,31 @@ struct ainfo
|
|||||||
|
|
||||||
extern void arg_number_disagree_warning(int a_lineno, char *a_name);
|
extern void arg_number_disagree_warning(int a_lineno, char *a_name);
|
||||||
extern void arg_type_disagree_warning(int a_lineno, int i, char *a_name);
|
extern void arg_type_disagree_warning(int a_lineno, int i, char *a_name);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void at_error(int a_lineno, char *a_line, char *a_cptr) GCC_NORETURN;
|
extern void at_error(int a_lineno, char *a_line, char *a_cptr) GCC_NORETURN;
|
||||||
extern void at_warning(int a_lineno, int i);
|
extern void at_warning(int a_lineno, int i);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void bad_formals(void) GCC_NORETURN;
|
extern void bad_formals(void) GCC_NORETURN;
|
||||||
extern void default_action_warning(char *s);
|
extern void default_action_warning(char *s);
|
||||||
extern void destructor_redeclared_warning(const struct ainfo *);
|
extern void destructor_redeclared_warning(const struct ainfo *);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void dollar_error(int a_lineno, char *a_line, char *a_cptr) GCC_NORETURN;
|
extern void dollar_error(int a_lineno, char *a_line, char *a_cptr) GCC_NORETURN;
|
||||||
extern void dollar_warning(int a_lineno, int i);
|
extern void dollar_warning(int a_lineno, int i);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void fatal(const char *msg) GCC_NORETURN;
|
extern void fatal(const char *msg) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void illegal_character(char *c_cptr) GCC_NORETURN;
|
extern void illegal_character(char *c_cptr) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void illegal_tag(int t_lineno, char *t_line, char *t_cptr) GCC_NORETURN;
|
extern void illegal_tag(int t_lineno, char *t_line, char *t_cptr) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void missing_brace(void) GCC_NORETURN;
|
extern void missing_brace(void) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void no_grammar(void) GCC_NORETURN;
|
extern void no_grammar(void) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void no_space(void) GCC_NORETURN;
|
extern void no_space(void) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void open_error(const char *filename) GCC_NORETURN;
|
extern void open_error(const char *filename) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void over_unionized(char *u_cptr) GCC_NORETURN;
|
extern void over_unionized(char *u_cptr) GCC_NORETURN;
|
||||||
extern void prec_redeclared(void);
|
extern void prec_redeclared(void);
|
||||||
extern void reprec_warning(char *s);
|
extern void reprec_warning(char *s);
|
||||||
@ -459,25 +496,43 @@ extern void restarted_warning(void);
|
|||||||
extern void retyped_warning(char *s);
|
extern void retyped_warning(char *s);
|
||||||
extern void revalued_warning(char *s);
|
extern void revalued_warning(char *s);
|
||||||
extern void start_requires_args(char *a_name);
|
extern void start_requires_args(char *a_name);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void syntax_error(int st_lineno, char *st_line, char *st_cptr) GCC_NORETURN;
|
extern void syntax_error(int st_lineno, char *st_line, char *st_cptr) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void terminal_lhs(int s_lineno) GCC_NORETURN;
|
extern void terminal_lhs(int s_lineno) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void terminal_start(char *s) GCC_NORETURN;
|
extern void terminal_start(char *s) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void tokenized_start(char *s) GCC_NORETURN;
|
extern void tokenized_start(char *s) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void undefined_goal(char *s) GCC_NORETURN;
|
extern void undefined_goal(char *s) GCC_NORETURN;
|
||||||
extern void undefined_symbol_warning(char *s);
|
extern void undefined_symbol_warning(char *s);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void unexpected_EOF(void) GCC_NORETURN;
|
extern void unexpected_EOF(void) GCC_NORETURN;
|
||||||
extern void unknown_arg_warning(int d_lineno, const char *dlr_opt, const char *d_arg, const char *d_line, const char *d_cptr);
|
extern void unknown_arg_warning(int d_lineno, const char *dlr_opt,
|
||||||
|
const char *d_arg, const char *d_line,
|
||||||
|
const char *d_cptr);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void unknown_rhs(int i) GCC_NORETURN;
|
extern void unknown_rhs(int i) GCC_NORETURN;
|
||||||
extern void unsupported_flag_warning(const char *flag, const char *details);
|
extern void unsupported_flag_warning(const char *flag, const char *details);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void unterminated_action(const struct ainfo *) GCC_NORETURN;
|
extern void unterminated_action(const struct ainfo *) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void unterminated_comment(const struct ainfo *) GCC_NORETURN;
|
extern void unterminated_comment(const struct ainfo *) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void unterminated_string(const struct ainfo *) GCC_NORETURN;
|
extern void unterminated_string(const struct ainfo *) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void unterminated_text(const struct ainfo *) GCC_NORETURN;
|
extern void unterminated_text(const struct ainfo *) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void unterminated_union(const struct ainfo *) GCC_NORETURN;
|
extern void unterminated_union(const struct ainfo *) GCC_NORETURN;
|
||||||
extern void untyped_arg_warning(int a_lineno, const char *dlr_opt, const char *a_name);
|
extern void untyped_arg_warning(int a_lineno, const char *dlr_opt, const char *a_name);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void untyped_lhs(void) GCC_NORETURN;
|
extern void untyped_lhs(void) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void untyped_rhs(int i, char *s) GCC_NORETURN;
|
extern void untyped_rhs(int i, char *s) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void used_reserved(char *s) GCC_NORETURN;
|
extern void used_reserved(char *s) GCC_NORETURN;
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void unterminated_arglist(const struct ainfo *) GCC_NORETURN;
|
extern void unterminated_arglist(const struct ainfo *) GCC_NORETURN;
|
||||||
extern void wrong_number_args_warning(const char *which, const char *a_name);
|
extern void wrong_number_args_warning(const char *which, const char *a_name);
|
||||||
extern void wrong_type_for_arg_warning(int i, char *a_name);
|
extern void wrong_type_for_arg_warning(int i, char *a_name);
|
||||||
@ -497,6 +552,7 @@ extern void show_shifts(void);
|
|||||||
|
|
||||||
/* main.c */
|
/* main.c */
|
||||||
extern void *allocate(size_t n);
|
extern void *allocate(size_t n);
|
||||||
|
ATTRIBUTE_NORETURN
|
||||||
extern void done(int k) GCC_NORETURN;
|
extern void done(int k) GCC_NORETURN;
|
||||||
|
|
||||||
/* mkpar.c */
|
/* mkpar.c */
|
||||||
@ -512,6 +568,7 @@ struct mstring
|
|||||||
extern void msprintf(struct mstring *, const char *, ...) GCC_PRINTFLIKE(2,3);
|
extern void msprintf(struct mstring *, const char *, ...) GCC_PRINTFLIKE(2,3);
|
||||||
extern int mputchar(struct mstring *, int);
|
extern int mputchar(struct mstring *, int);
|
||||||
extern struct mstring *msnew(void);
|
extern struct mstring *msnew(void);
|
||||||
|
extern struct mstring *msrenew(char *);
|
||||||
extern char *msdone(struct mstring *);
|
extern char *msdone(struct mstring *);
|
||||||
extern int strnscmp(const char *, const char *);
|
extern int strnscmp(const char *, const char *);
|
||||||
extern unsigned int strnshash(const char *);
|
extern unsigned int strnshash(const char *);
|
||||||
@ -526,6 +583,24 @@ extern void output(void);
|
|||||||
/* reader.c */
|
/* reader.c */
|
||||||
extern void reader(void);
|
extern void reader(void);
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
CODE_HEADER = 0
|
||||||
|
,CODE_REQUIRES
|
||||||
|
,CODE_PROVIDES
|
||||||
|
,CODE_TOP
|
||||||
|
,CODE_IMPORTS
|
||||||
|
,CODE_MAX /* this must be last */
|
||||||
|
}
|
||||||
|
CODE_CASES;
|
||||||
|
extern struct code_lines
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
char *lines;
|
||||||
|
size_t num;
|
||||||
|
}
|
||||||
|
code_lines[CODE_MAX];
|
||||||
|
|
||||||
/* skeleton.c (generated by skel2c) */
|
/* skeleton.c (generated by skel2c) */
|
||||||
extern void write_section(FILE * fp, const char *const section[]);
|
extern void write_section(FILE * fp, const char *const section[]);
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/* $Id: main.c,v 1.60 2017/04/30 20:57:56 Julien.Ramseier Exp $ */
|
/* $Id: main.c,v 1.69 2019/11/25 23:24:36 Tom.Shields Exp $ */
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#ifndef _WIN32
|
#if !defined(_WIN32) || defined(__MINGW32__)
|
||||||
#include <unistd.h> /* for _exit() */
|
#include <unistd.h> /* for _exit() */
|
||||||
#else
|
#else
|
||||||
#include <stdlib.h> /* for _exit() */
|
#include <stdlib.h> /* for _exit() */
|
||||||
@ -33,6 +33,7 @@ static MY_TMPFILES *my_tmpfiles;
|
|||||||
#endif /* USE_MKSTEMP */
|
#endif /* USE_MKSTEMP */
|
||||||
|
|
||||||
char dflag;
|
char dflag;
|
||||||
|
char dflag2;
|
||||||
char gflag;
|
char gflag;
|
||||||
char iflag;
|
char iflag;
|
||||||
char lflag;
|
char lflag;
|
||||||
@ -150,7 +151,7 @@ done(int k)
|
|||||||
if (rflag)
|
if (rflag)
|
||||||
DO_FREE(code_file_name);
|
DO_FREE(code_file_name);
|
||||||
|
|
||||||
if (dflag)
|
if (dflag && !dflag2)
|
||||||
DO_FREE(defines_file_name);
|
DO_FREE(defines_file_name);
|
||||||
|
|
||||||
if (iflag)
|
if (iflag)
|
||||||
@ -210,6 +211,7 @@ usage(void)
|
|||||||
," -b file_prefix set filename prefix (default \"y.\")"
|
," -b file_prefix set filename prefix (default \"y.\")"
|
||||||
," -B create a backtracking parser"
|
," -B create a backtracking parser"
|
||||||
," -d write definitions (" DEFINES_SUFFIX ")"
|
," -d write definitions (" DEFINES_SUFFIX ")"
|
||||||
|
," -H defines_file write definitions to defines_file"
|
||||||
," -i write interface (y.tab.i)"
|
," -i write interface (y.tab.i)"
|
||||||
," -g write a graphical description"
|
," -g write a graphical description"
|
||||||
," -l suppress #line directives"
|
," -l suppress #line directives"
|
||||||
@ -230,7 +232,7 @@ usage(void)
|
|||||||
for (n = 0; n < sizeof(msg) / sizeof(msg[0]); ++n)
|
for (n = 0; n < sizeof(msg) / sizeof(msg[0]); ++n)
|
||||||
fprintf(stderr, "%s\n", msg[n]);
|
fprintf(stderr, "%s\n", msg[n]);
|
||||||
|
|
||||||
exit(1);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -248,6 +250,7 @@ setflag(int ch)
|
|||||||
|
|
||||||
case 'd':
|
case 'd':
|
||||||
dflag = 1;
|
dflag = 1;
|
||||||
|
dflag2 = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'g':
|
case 'g':
|
||||||
@ -308,6 +311,46 @@ static void
|
|||||||
getargs(int argc, char *argv[])
|
getargs(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
#ifdef HAVE_GETOPT
|
||||||
|
int ch;
|
||||||
|
|
||||||
|
if (argc > 0)
|
||||||
|
myname = argv[0];
|
||||||
|
|
||||||
|
while ((ch = getopt(argc, argv, "Bb:dgH:ilLo:Pp:rstVvy")) != -1)
|
||||||
|
{
|
||||||
|
switch (ch)
|
||||||
|
{
|
||||||
|
case 'b':
|
||||||
|
file_prefix = optarg;
|
||||||
|
break;
|
||||||
|
case 'H':
|
||||||
|
dflag = dflag2 = 1;
|
||||||
|
defines_file_name = optarg;
|
||||||
|
break;
|
||||||
|
case 'o':
|
||||||
|
output_file_name = optarg;
|
||||||
|
break;
|
||||||
|
case 'p':
|
||||||
|
symbol_prefix = optarg;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
setflag(ch);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((i = optind) < argc)
|
||||||
|
{
|
||||||
|
/* getopt handles "--" specially, while we handle "-" specially */
|
||||||
|
if (!strcmp(argv[i], "-"))
|
||||||
|
{
|
||||||
|
if ((i + 1) < argc)
|
||||||
|
usage();
|
||||||
|
input_file = stdin;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
char *s;
|
char *s;
|
||||||
int ch;
|
int ch;
|
||||||
|
|
||||||
@ -340,6 +383,16 @@ getargs(int argc, char *argv[])
|
|||||||
usage();
|
usage();
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
case 'H':
|
||||||
|
dflag = dflag2 = 1;
|
||||||
|
if (*++s)
|
||||||
|
defines_file_name = s;
|
||||||
|
else if (++i < argc)
|
||||||
|
defines_file_name = argv[i];
|
||||||
|
else
|
||||||
|
usage();
|
||||||
|
continue;
|
||||||
|
|
||||||
case 'o':
|
case 'o':
|
||||||
if (*++s)
|
if (*++s)
|
||||||
output_file_name = s;
|
output_file_name = s;
|
||||||
@ -378,7 +431,9 @@ getargs(int argc, char *argv[])
|
|||||||
end_of_option:;
|
end_of_option:;
|
||||||
}
|
}
|
||||||
|
|
||||||
no_more_options:;
|
no_more_options:
|
||||||
|
|
||||||
|
#endif /* HAVE_GETOPT */
|
||||||
if (i + 1 != argc)
|
if (i + 1 != argc)
|
||||||
usage();
|
usage();
|
||||||
input_file_name_len = strlen(argv[i]);
|
input_file_name_len = strlen(argv[i]);
|
||||||
@ -476,7 +531,7 @@ create_file_names(void)
|
|||||||
else
|
else
|
||||||
code_file_name = output_file_name;
|
code_file_name = output_file_name;
|
||||||
|
|
||||||
if (dflag)
|
if (dflag && !dflag2)
|
||||||
{
|
{
|
||||||
CREATE_FILE_NAME(defines_file_name, defines_suffix);
|
CREATE_FILE_NAME(defines_file_name, defines_suffix);
|
||||||
}
|
}
|
||||||
@ -578,7 +633,8 @@ open_tmpfile(const char *label)
|
|||||||
char *name;
|
char *name;
|
||||||
const char *mark;
|
const char *mark;
|
||||||
|
|
||||||
if ((tmpdir = getenv("TMPDIR")) == 0 || access(tmpdir, W_OK) != 0)
|
if (((tmpdir = getenv("TMPDIR")) == 0 || access(tmpdir, W_OK) != 0) ||
|
||||||
|
((tmpdir = getenv("TEMP")) == 0 || access(tmpdir, W_OK) != 0))
|
||||||
{
|
{
|
||||||
#ifdef P_tmpdir
|
#ifdef P_tmpdir
|
||||||
tmpdir = P_tmpdir;
|
tmpdir = P_tmpdir;
|
||||||
@ -605,27 +661,28 @@ open_tmpfile(const char *label)
|
|||||||
|
|
||||||
sprintf(name, MY_FMT, tmpdir, (int)(mark - label), label);
|
sprintf(name, MY_FMT, tmpdir, (int)(mark - label), label);
|
||||||
fd = mkstemp(name);
|
fd = mkstemp(name);
|
||||||
if (fd >= 0)
|
if (fd >= 0
|
||||||
|
&& (result = fdopen(fd, "w+")) != 0)
|
||||||
{
|
{
|
||||||
result = fdopen(fd, "w+");
|
MY_TMPFILES *item;
|
||||||
if (result != 0)
|
|
||||||
|
if (my_tmpfiles == 0)
|
||||||
{
|
{
|
||||||
MY_TMPFILES *item;
|
atexit(close_tmpfiles);
|
||||||
|
|
||||||
if (my_tmpfiles == 0)
|
|
||||||
{
|
|
||||||
atexit(close_tmpfiles);
|
|
||||||
}
|
|
||||||
|
|
||||||
item = NEW(MY_TMPFILES);
|
|
||||||
NO_SPACE(item);
|
|
||||||
|
|
||||||
item->name = name;
|
|
||||||
NO_SPACE(item->name);
|
|
||||||
|
|
||||||
item->next = my_tmpfiles;
|
|
||||||
my_tmpfiles = item;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
item = NEW(MY_TMPFILES);
|
||||||
|
NO_SPACE(item);
|
||||||
|
|
||||||
|
item->name = name;
|
||||||
|
NO_SPACE(item->name);
|
||||||
|
|
||||||
|
item->next = my_tmpfiles;
|
||||||
|
my_tmpfiles = item;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FREE(name);
|
||||||
}
|
}
|
||||||
(void)umask(save_umask);
|
(void)umask(save_umask);
|
||||||
}
|
}
|
||||||
@ -678,7 +735,7 @@ open_files(void)
|
|||||||
fprintf(graph_file, "\t*/\n");
|
fprintf(graph_file, "\t*/\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dflag)
|
if (dflag || dflag2)
|
||||||
{
|
{
|
||||||
defines_file = fopen(defines_file_name, "w");
|
defines_file = fopen(defines_file_name, "w");
|
||||||
if (defines_file == 0)
|
if (defines_file == 0)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: mkpar.c,v 1.15 2016/06/07 00:22:12 tom Exp $ */
|
/* $Id: mkpar.c,v 1.16 2019/11/04 01:23:02 tom Exp $ */
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
|
||||||
@ -174,14 +174,16 @@ find_final_state(void)
|
|||||||
Value_t *to_state2;
|
Value_t *to_state2;
|
||||||
shifts *p;
|
shifts *p;
|
||||||
|
|
||||||
p = shift_table[0];
|
if ((p = shift_table[0]) != 0)
|
||||||
to_state2 = p->shift;
|
|
||||||
goal = ritem[1];
|
|
||||||
for (i = p->nshifts - 1; i >= 0; --i)
|
|
||||||
{
|
{
|
||||||
final_state = to_state2[i];
|
to_state2 = p->shift;
|
||||||
if (accessing_symbol[final_state] == goal)
|
goal = ritem[1];
|
||||||
break;
|
for (i = p->nshifts - 1; i >= 0; --i)
|
||||||
|
{
|
||||||
|
final_state = to_state2[i];
|
||||||
|
if (accessing_symbol[final_state] == goal)
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: mstring.c,v 1.7 2016/12/02 17:57:21 tom Exp $ */
|
/* $Id: mstring.c,v 1.9 2019/11/19 23:54:53 tom Exp $ */
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -12,13 +12,11 @@
|
|||||||
#define HEAD 24
|
#define HEAD 24
|
||||||
#define TAIL 8
|
#define TAIL 8
|
||||||
|
|
||||||
#if defined(YYBTYACC)
|
|
||||||
|
|
||||||
static char *buf_ptr;
|
static char *buf_ptr;
|
||||||
static size_t buf_len;
|
static size_t buf_len;
|
||||||
|
|
||||||
void
|
void
|
||||||
msprintf(struct mstring *s, const char *fmt,...)
|
msprintf(struct mstring *s, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
size_t len;
|
size_t len;
|
||||||
@ -91,7 +89,6 @@ msprintf(struct mstring *s, const char *fmt,...)
|
|||||||
memcpy(s->ptr, buf_ptr, len);
|
memcpy(s->ptr, buf_ptr, len);
|
||||||
s->ptr += len;
|
s->ptr += len;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
mputchar(struct mstring *s, int ch)
|
mputchar(struct mstring *s, int ch)
|
||||||
@ -136,6 +133,20 @@ msnew(void)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct mstring *
|
||||||
|
msrenew(char *value)
|
||||||
|
{
|
||||||
|
struct mstring *r = 0;
|
||||||
|
if (value != 0)
|
||||||
|
{
|
||||||
|
r = msnew();
|
||||||
|
r->base = value;
|
||||||
|
r->end = value + strlen(value);
|
||||||
|
r->ptr = r->end;
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
msdone(struct mstring *s)
|
msdone(struct mstring *s)
|
||||||
{
|
{
|
||||||
@ -198,10 +209,8 @@ strnshash(const char *s)
|
|||||||
void
|
void
|
||||||
mstring_leaks(void)
|
mstring_leaks(void)
|
||||||
{
|
{
|
||||||
#if defined(YYBTYACC)
|
|
||||||
free(buf_ptr);
|
free(buf_ptr);
|
||||||
buf_ptr = 0;
|
buf_ptr = 0;
|
||||||
buf_len = 0;
|
buf_len = 0;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $Id: output.c,v 1.81 2017/04/30 23:23:32 tom Exp $ */
|
/* $Id: output.c,v 1.92 2019/11/20 00:55:05 tom Exp $ */
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
|
||||||
@ -185,6 +185,27 @@ output_prefix(FILE * fp)
|
|||||||
fprintf(fp, "#define YYPREFIX \"%s\"\n", symbol_prefix);
|
fprintf(fp, "#define YYPREFIX \"%s\"\n", symbol_prefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
output_code_lines(FILE * fp, int cl)
|
||||||
|
{
|
||||||
|
if (code_lines[cl].lines != NULL)
|
||||||
|
{
|
||||||
|
if (fp == code_file)
|
||||||
|
{
|
||||||
|
outline += (int)code_lines[cl].num;
|
||||||
|
outline += 3;
|
||||||
|
fprintf(fp, "\n");
|
||||||
|
}
|
||||||
|
fprintf(fp, "/* %%code \"%s\" block start */\n", code_lines[cl].name);
|
||||||
|
fputs(code_lines[cl].lines, fp);
|
||||||
|
fprintf(fp, "/* %%code \"%s\" block end */\n", code_lines[cl].name);
|
||||||
|
if (fp == code_file)
|
||||||
|
{
|
||||||
|
write_code_lineno(fp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
output_newline(void)
|
output_newline(void)
|
||||||
{
|
{
|
||||||
@ -1162,21 +1183,21 @@ is_C_identifier(char *name)
|
|||||||
if (c == '"')
|
if (c == '"')
|
||||||
{
|
{
|
||||||
c = *++s;
|
c = *++s;
|
||||||
if (!isalpha(c) && c != '_' && c != '$')
|
if (!IS_NAME1(c))
|
||||||
return (0);
|
return (0);
|
||||||
while ((c = *++s) != '"')
|
while ((c = *++s) != '"')
|
||||||
{
|
{
|
||||||
if (!isalnum(c) && c != '_' && c != '$')
|
if (!IS_NAME2(c))
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isalpha(c) && c != '_' && c != '$')
|
if (!IS_NAME1(c))
|
||||||
return (0);
|
return (0);
|
||||||
while ((c = *++s) != 0)
|
while ((c = *++s) != 0)
|
||||||
{
|
{
|
||||||
if (!isalnum(c) && c != '_' && c != '$')
|
if (!IS_NAME2(c))
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
return (1);
|
return (1);
|
||||||
@ -1206,6 +1227,11 @@ output_defines(FILE * fp)
|
|||||||
int c, i;
|
int c, i;
|
||||||
char *s;
|
char *s;
|
||||||
|
|
||||||
|
if (fp == defines_file)
|
||||||
|
{
|
||||||
|
output_code_lines(fp, CODE_REQUIRES);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 2; i < ntokens; ++i)
|
for (i = 2; i < ntokens; ++i)
|
||||||
{
|
{
|
||||||
s = symbol_name[i];
|
s = symbol_name[i];
|
||||||
@ -1239,6 +1265,11 @@ output_defines(FILE * fp)
|
|||||||
if (fp != defines_file || iflag)
|
if (fp != defines_file || iflag)
|
||||||
fprintf(fp, "#define YYERRCODE %d\n", symbol_value[1]);
|
fprintf(fp, "#define YYERRCODE %d\n", symbol_value[1]);
|
||||||
|
|
||||||
|
if (fp == defines_file)
|
||||||
|
{
|
||||||
|
output_code_lines(fp, CODE_PROVIDES);
|
||||||
|
}
|
||||||
|
|
||||||
if (token_table && rflag && fp != externs_file)
|
if (token_table && rflag && fp != externs_file)
|
||||||
{
|
{
|
||||||
if (fp == code_file)
|
if (fp == code_file)
|
||||||
@ -1259,11 +1290,15 @@ output_defines(FILE * fp)
|
|||||||
while ((c = getc(union_file)) != EOF)
|
while ((c = getc(union_file)) != EOF)
|
||||||
putc_code(fp, c);
|
putc_code(fp, c);
|
||||||
}
|
}
|
||||||
fprintf(fp, "extern YYSTYPE %slval;\n", symbol_prefix);
|
if (!pure_parser)
|
||||||
|
fprintf(fp, "extern YYSTYPE %slval;\n", symbol_prefix);
|
||||||
}
|
}
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
if (locations)
|
if (locations)
|
||||||
|
{
|
||||||
output_ltype(fp);
|
output_ltype(fp);
|
||||||
|
fprintf(fp, "extern YYLTYPE %slloc;\n", symbol_prefix);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1274,9 +1309,9 @@ output_stored_text(FILE * fp)
|
|||||||
int c;
|
int c;
|
||||||
FILE *in;
|
FILE *in;
|
||||||
|
|
||||||
rewind(text_file);
|
|
||||||
if (text_file == NULL)
|
if (text_file == NULL)
|
||||||
open_error("text_file");
|
open_error("text_file");
|
||||||
|
rewind(text_file);
|
||||||
in = text_file;
|
in = text_file;
|
||||||
if ((c = getc(in)) == EOF)
|
if ((c = getc(in)) == EOF)
|
||||||
return;
|
return;
|
||||||
@ -1288,6 +1323,15 @@ output_stored_text(FILE * fp)
|
|||||||
write_code_lineno(fp);
|
write_code_lineno(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
output_yydebug(FILE * fp)
|
||||||
|
{
|
||||||
|
fprintf(fp, "#ifndef YYDEBUG\n");
|
||||||
|
fprintf(fp, "#define YYDEBUG %d\n", tflag);
|
||||||
|
fprintf(fp, "#endif\n");
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
output_debug(void)
|
output_debug(void)
|
||||||
{
|
{
|
||||||
@ -1298,16 +1342,11 @@ output_debug(void)
|
|||||||
++outline;
|
++outline;
|
||||||
fprintf(code_file, "#define YYFINAL %d\n", final_state);
|
fprintf(code_file, "#define YYFINAL %d\n", final_state);
|
||||||
|
|
||||||
putl_code(code_file, "#ifndef YYDEBUG\n");
|
outline += output_yydebug(code_file);
|
||||||
++outline;
|
|
||||||
fprintf(code_file, "#define YYDEBUG %d\n", tflag);
|
|
||||||
putl_code(code_file, "#endif\n");
|
|
||||||
|
|
||||||
if (rflag)
|
if (rflag)
|
||||||
{
|
{
|
||||||
fprintf(output_file, "#ifndef YYDEBUG\n");
|
output_yydebug(output_file);
|
||||||
fprintf(output_file, "#define YYDEBUG %d\n", tflag);
|
|
||||||
fprintf(output_file, "#endif\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
maxtok = 0;
|
maxtok = 0;
|
||||||
@ -1793,6 +1832,23 @@ output_lex_decl(FILE * fp)
|
|||||||
putl_code(fp, "# define YYLEX yylex()\n");
|
putl_code(fp, "# define YYLEX yylex()\n");
|
||||||
}
|
}
|
||||||
putl_code(fp, "#endif\n");
|
putl_code(fp, "#endif\n");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Provide a prototype for yylex for the simplest case. This is done for
|
||||||
|
* better compatibility with older yacc's, but can be a problem if someone
|
||||||
|
* uses "static int yylex(void);"
|
||||||
|
*/
|
||||||
|
if (!pure_parser
|
||||||
|
#if defined(YYBTYACC)
|
||||||
|
&& !backtrack
|
||||||
|
#endif
|
||||||
|
&& !strcmp(symbol_prefix, "yy"))
|
||||||
|
{
|
||||||
|
putl_code(fp, "\n");
|
||||||
|
putl_code(fp, "#if !(defined(yylex) || defined(YYSTATE))\n");
|
||||||
|
putl_code(fp, "int YYLEX_DECL();\n");
|
||||||
|
putl_code(fp, "#endif\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -1980,6 +2036,7 @@ output(void)
|
|||||||
free_shifts();
|
free_shifts();
|
||||||
free_reductions();
|
free_reductions();
|
||||||
|
|
||||||
|
output_code_lines(code_file, CODE_TOP);
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
output_backtracking_parser(output_file);
|
output_backtracking_parser(output_file);
|
||||||
if (rflag)
|
if (rflag)
|
||||||
@ -2021,13 +2078,11 @@ output(void)
|
|||||||
|
|
||||||
if (iflag)
|
if (iflag)
|
||||||
{
|
{
|
||||||
|
fprintf(externs_file, "\n");
|
||||||
|
output_yydebug(externs_file);
|
||||||
output_externs(externs_file, global_vars);
|
output_externs(externs_file, global_vars);
|
||||||
if (!pure_parser)
|
if (!pure_parser)
|
||||||
output_externs(externs_file, impure_vars);
|
output_externs(externs_file, impure_vars);
|
||||||
}
|
|
||||||
|
|
||||||
if (iflag)
|
|
||||||
{
|
|
||||||
if (dflag)
|
if (dflag)
|
||||||
{
|
{
|
||||||
++outline;
|
++outline;
|
||||||
@ -2057,22 +2112,30 @@ output(void)
|
|||||||
output_actions();
|
output_actions();
|
||||||
free_parser();
|
free_parser();
|
||||||
output_debug();
|
output_debug();
|
||||||
|
|
||||||
if (rflag)
|
if (rflag)
|
||||||
{
|
{
|
||||||
write_section(code_file, xdecls);
|
write_section(code_file, xdecls);
|
||||||
output_YYINT_typedef(code_file);
|
output_YYINT_typedef(code_file);
|
||||||
write_section(code_file, tables);
|
write_section(code_file, tables);
|
||||||
}
|
}
|
||||||
|
|
||||||
write_section(code_file, global_vars);
|
write_section(code_file, global_vars);
|
||||||
if (!pure_parser)
|
if (!pure_parser)
|
||||||
{
|
{
|
||||||
write_section(code_file, impure_vars);
|
write_section(code_file, impure_vars);
|
||||||
}
|
}
|
||||||
|
output_code_lines(code_file, CODE_REQUIRES);
|
||||||
|
|
||||||
write_section(code_file, hdr_defs);
|
write_section(code_file, hdr_defs);
|
||||||
if (!pure_parser)
|
if (!pure_parser)
|
||||||
{
|
{
|
||||||
write_section(code_file, hdr_vars);
|
write_section(code_file, hdr_vars);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
output_code_lines(code_file, CODE_PROVIDES);
|
||||||
|
output_code_lines(code_file, CODE_HEADER);
|
||||||
|
|
||||||
output_trailing_text();
|
output_trailing_text();
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
if (destructor)
|
if (destructor)
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
Summary: byacc - public domain Berkeley LALR Yacc parser generator
|
Summary: byacc - public domain Berkeley LALR Yacc parser generator
|
||||||
%define AppProgram byacc
|
%define AppProgram byacc
|
||||||
%define AppVersion 20170430
|
%define AltProgram btyacc
|
||||||
|
%define AppVersion 20200330
|
||||||
%define UseProgram yacc
|
%define UseProgram yacc
|
||||||
# $XTermId: byacc.spec,v 1.34 2017/04/30 20:55:15 tom Exp $
|
# $Id: byacc.spec,v 1.49 2020/03/30 23:31:42 tom Exp $
|
||||||
Name: %{AppProgram}
|
Name: %{AppProgram}
|
||||||
Version: %{AppVersion}
|
Version: %{AppVersion}
|
||||||
Release: 1
|
Release: 1
|
||||||
@ -10,7 +11,7 @@ License: Public Domain, MIT
|
|||||||
Group: Applications/Development
|
Group: Applications/Development
|
||||||
URL: ftp://invisible-island.net/%{AppProgram}
|
URL: ftp://invisible-island.net/%{AppProgram}
|
||||||
Source0: %{AppProgram}-%{AppVersion}.tgz
|
Source0: %{AppProgram}-%{AppVersion}.tgz
|
||||||
Packager: Thomas Dickey <dickey@invisible-island.net>
|
Packager: Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This package provides a parser generator utility that reads a grammar
|
This package provides a parser generator utility that reads a grammar
|
||||||
@ -19,30 +20,69 @@ parsers consist of a set of LALR(1) parsing tables and a driver
|
|||||||
routine written in the C programming language. It has a public domain
|
routine written in the C programming language. It has a public domain
|
||||||
license which includes the generated C.
|
license which includes the generated C.
|
||||||
|
|
||||||
|
%package -n btyacc
|
||||||
|
Summary: Curses library with POSIX thread support.
|
||||||
|
|
||||||
|
%description -n btyacc
|
||||||
|
This package provides a parser generator utility that reads a grammar
|
||||||
|
specification from a file and generates an LR(1) parser for it. The
|
||||||
|
parsers consist of a set of LALR(1) parsing tables and a driver
|
||||||
|
routine written in the C programming language. It has a public domain
|
||||||
|
license which includes the generated C.
|
||||||
|
|
||||||
|
This package has the backtracking extension.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
|
||||||
|
%define debug_package %{nil}
|
||||||
|
|
||||||
%setup -q -n %{AppProgram}-%{AppVersion}
|
%setup -q -n %{AppProgram}-%{AppVersion}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
%define my_srcdir ..
|
||||||
|
%define CFG_OPTS \\\
|
||||||
|
--verbose \\\
|
||||||
|
--disable-echo \\\
|
||||||
|
--target %{_target_platform} \\\
|
||||||
|
--prefix=%{_prefix} \\\
|
||||||
|
--srcdir=%{my_srcdir} \\\
|
||||||
|
--bindir=%{_bindir} \\\
|
||||||
|
--libdir=%{_libdir} \\\
|
||||||
|
--mandir=%{_mandir}
|
||||||
|
|
||||||
INSTALL_PROGRAM='${INSTALL}' \
|
%global _configure ../configure
|
||||||
./configure \
|
|
||||||
--program-prefix=b \
|
|
||||||
--target %{_target_platform} \
|
|
||||||
--prefix=%{_prefix} \
|
|
||||||
--bindir=%{_bindir} \
|
|
||||||
--libdir=%{_libdir} \
|
|
||||||
--mandir=%{_mandir}
|
|
||||||
|
|
||||||
|
mkdir BUILD-byacc
|
||||||
|
pushd BUILD-byacc
|
||||||
|
CONFIGURE_TOP=%{my_srcdir} \
|
||||||
|
%configure %{CFG_OPTS} \
|
||||||
|
--program-prefix=b \
|
||||||
|
--program-transform-name='s,\^,b,'
|
||||||
make
|
make
|
||||||
|
popd
|
||||||
|
|
||||||
|
mkdir BUILD-btyacc
|
||||||
|
pushd BUILD-btyacc
|
||||||
|
CONFIGURE_TOP=%{my_srcdir} \
|
||||||
|
%configure %{CFG_OPTS} \
|
||||||
|
--enable-btyacc \
|
||||||
|
--program-prefix=bt \
|
||||||
|
--with-max-table-size=18000 \
|
||||||
|
--program-transform-name='s,\^,bt,'
|
||||||
|
make
|
||||||
|
popd
|
||||||
|
|
||||||
%install
|
%install
|
||||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
make install DESTDIR=$RPM_BUILD_ROOT
|
pushd BUILD-byacc
|
||||||
( cd $RPM_BUILD_ROOT%{_bindir} && ln -s %{AppProgram} %{UseProgram} )
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
( cd $RPM_BUILD_ROOT%{_bindir} && ln -vs %{AppProgram} %{UseProgram} )
|
||||||
|
popd
|
||||||
|
|
||||||
strip $RPM_BUILD_ROOT%{_bindir}/%{AppProgram}
|
pushd BUILD-btyacc
|
||||||
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
popd
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||||||
@ -53,8 +93,19 @@ strip $RPM_BUILD_ROOT%{_bindir}/%{AppProgram}
|
|||||||
%{_prefix}/bin/%{UseProgram}
|
%{_prefix}/bin/%{UseProgram}
|
||||||
%{_mandir}/man1/%{AppProgram}.*
|
%{_mandir}/man1/%{AppProgram}.*
|
||||||
|
|
||||||
|
%files -n btyacc
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_prefix}/bin/%{AltProgram}
|
||||||
|
%{_mandir}/man1/%{AltProgram}.*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
# each patch should add its ChangeLog entries here
|
# each patch should add its ChangeLog entries here
|
||||||
|
|
||||||
|
* Fri May 25 2018 Thomas Dickey
|
||||||
|
- add btyacc package
|
||||||
|
|
||||||
|
* Sun Jul 09 2017 Thomas Dickey
|
||||||
|
- use predefined "configure"
|
||||||
|
|
||||||
* Sun Jun 06 2010 Thomas Dickey
|
* Sun Jun 06 2010 Thomas Dickey
|
||||||
- initial version
|
- initial version
|
||||||
|
@ -1,3 +1,75 @@
|
|||||||
|
byacc (20200330) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Mon, 30 Mar 2020 19:31:42 -0400
|
||||||
|
|
||||||
|
byacc (20191125) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Mon, 25 Nov 2019 18:13:14 -0500
|
||||||
|
|
||||||
|
byacc (20191119) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Tue, 19 Nov 2019 20:40:56 -0500
|
||||||
|
|
||||||
|
byacc (20191103) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 03 Nov 2019 16:42:41 -0500
|
||||||
|
|
||||||
|
byacc (20190617) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 16 Jun 2019 15:51:03 -0400
|
||||||
|
|
||||||
|
byacc (20190616) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 16 Jun 2019 08:55:03 -0400
|
||||||
|
|
||||||
|
byacc (20180609) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 09 Jun 2018 20:42:16 -0400
|
||||||
|
|
||||||
|
byacc (20180525) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Mon, 21 May 2018 18:50:44 -0400
|
||||||
|
|
||||||
|
byacc (20180510) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Thu, 10 May 2018 04:59:09 -0400
|
||||||
|
|
||||||
|
byacc (20180509) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Wed, 09 May 2018 21:13:51 -0400
|
||||||
|
|
||||||
|
byacc (20180508) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Tue, 08 May 2018 16:24:39 -0400
|
||||||
|
|
||||||
|
byacc (20170709) unstable; urgency=low
|
||||||
|
|
||||||
|
* maintenance updates
|
||||||
|
|
||||||
|
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 09 Jul 2017 13:49:13 -0400
|
||||||
|
|
||||||
byacc (20170430) unstable; urgency=low
|
byacc (20170430) unstable; urgency=low
|
||||||
|
|
||||||
* maintenance updates
|
* maintenance updates
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Source: byacc
|
Source: byacc
|
||||||
Maintainer: Dave Beckett <dajobe@debian.org>
|
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
|
||||||
Section: devel
|
Section: devel
|
||||||
Priority: extra
|
Priority: optional
|
||||||
Standards-Version: 3.8.4
|
Standards-Version: 3.8.4
|
||||||
Build-Depends: debhelper (>= 5)
|
Build-Depends: debhelper (>= 5)
|
||||||
Homepage: http://invisible-island.net/byacc/
|
Homepage: http://invisible-island.net/byacc/
|
||||||
@ -15,3 +15,15 @@ Description: public domain Berkeley LALR Yacc parser generator
|
|||||||
parsers consist of a set of LALR(1) parsing tables and a driver
|
parsers consist of a set of LALR(1) parsing tables and a driver
|
||||||
routine written in the C programming language. It has a public domain
|
routine written in the C programming language. It has a public domain
|
||||||
license which includes the generated C.
|
license which includes the generated C.
|
||||||
|
|
||||||
|
Package: btyacc
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||||
|
Description: public domain Berkeley LALR Yacc parser generator
|
||||||
|
This package provides a parser generator utility that reads a grammar
|
||||||
|
specification from a file and generates an LR(1) parser for it. The
|
||||||
|
parsers consist of a set of LALR(1) parsing tables and a driver
|
||||||
|
routine written in the C programming language. It has a public domain
|
||||||
|
license which includes the generated C.
|
||||||
|
.
|
||||||
|
This package has the backtracking extension.
|
||||||
|
@ -36,7 +36,7 @@ skeleton.c with the bug report. Do not expect rapid responses.
|
|||||||
|
|
||||||
Files: aclocal.m4
|
Files: aclocal.m4
|
||||||
Licence: other-BSD
|
Licence: other-BSD
|
||||||
Copyright: 2004-2016,2017 by Thomas E. Dickey
|
Copyright: 2004-2019,2020 by Thomas E. Dickey
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the
|
copy of this software and associated documentation files (the
|
||||||
"Software"), to deal in the Software without restriction, including
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
# MAde with the aid of dh_make, by Craig Small
|
# $Id: rules,v 1.3 2018/05/25 20:03:37 tom Exp $
|
||||||
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
|
#
|
||||||
# Some lines taken from debmake, by Cristoph Lameter.
|
|
||||||
|
|
||||||
# Uncomment this to turn on verbose mode.
|
# Uncomment this to turn on verbose mode.
|
||||||
#export DH_VERBOSE=1
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
@ -11,7 +9,11 @@
|
|||||||
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||||
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||||
|
|
||||||
CFLAGS =
|
PACKAGES.arch = byacc btyacc
|
||||||
|
|
||||||
|
CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
|
||||||
|
CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
|
||||||
|
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
|
||||||
|
|
||||||
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
||||||
CFLAGS += -O0
|
CFLAGS += -O0
|
||||||
@ -22,12 +24,19 @@ ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
|
|||||||
INSTALL_PROGRAM += -s
|
INSTALL_PROGRAM += -s
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
BYACC_DIR = $(CURDIR)/debian/byacc
|
||||||
|
BTYACC_DIR = $(CURDIR)/debian/btyacc
|
||||||
|
|
||||||
configure: configure-stamp
|
BYACC_TMP = t/byacc
|
||||||
configure-stamp:
|
BTYACC_TMP = t/btyacc
|
||||||
dh_testdir
|
|
||||||
|
|
||||||
CFLAGS="$(CFLAGS)" ./configure \
|
verbose = # -v
|
||||||
|
|
||||||
|
configure = \
|
||||||
|
CPPFLAGS="$(CPPFLAGS)" \
|
||||||
|
CFLAGS="$(CFLAGS)" \
|
||||||
|
LDFLAGS="$(LDFLAGS)" \
|
||||||
|
../../configure \
|
||||||
--host=$(DEB_HOST_GNU_TYPE) \
|
--host=$(DEB_HOST_GNU_TYPE) \
|
||||||
--build=$(DEB_BUILD_GNU_TYPE) \
|
--build=$(DEB_BUILD_GNU_TYPE) \
|
||||||
--prefix=/usr \
|
--prefix=/usr \
|
||||||
@ -35,59 +44,96 @@ configure-stamp:
|
|||||||
--sysconfdir=/etc \
|
--sysconfdir=/etc \
|
||||||
--program-transform-name='s,^,b,'
|
--program-transform-name='s,^,b,'
|
||||||
|
|
||||||
touch configure-stamp
|
all: build
|
||||||
|
|
||||||
build: build-stamp
|
config: config-arch
|
||||||
build-stamp: configure-stamp
|
build: build-arch
|
||||||
|
install: install-arch
|
||||||
|
binary: binary-arch
|
||||||
|
|
||||||
|
config-arch: $(PACKAGES.arch:%=config-%-stamp)
|
||||||
|
build-arch: $(PACKAGES.arch:%=build-%-stamp)
|
||||||
|
install-arch: $(PACKAGES.arch:%=install-%-stamp)
|
||||||
|
|
||||||
|
config-byacc-stamp:
|
||||||
dh_testdir
|
dh_testdir
|
||||||
|
|
||||||
$(MAKE)
|
rm -rf $(BYACC_TMP)
|
||||||
|
mkdir -p $(BYACC_TMP)
|
||||||
|
cd $(BYACC_TMP); $(configure)
|
||||||
|
|
||||||
touch build-stamp
|
touch $@
|
||||||
|
|
||||||
|
config-btyacc-stamp:
|
||||||
|
dh_testdir
|
||||||
|
|
||||||
|
rm -rf $(BTYACC_TMP)
|
||||||
|
mkdir -p $(BTYACC_TMP)
|
||||||
|
cd $(BTYACC_TMP); $(configure) \
|
||||||
|
--enable-btyacc \
|
||||||
|
--with-max-table-size=18000 \
|
||||||
|
--program-transform-name='s,^,bt,'
|
||||||
|
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
build-byacc-stamp: config-byacc-stamp
|
||||||
|
dh_testdir
|
||||||
|
|
||||||
|
cd $(BYACC_TMP); $(MAKE)
|
||||||
|
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
build-btyacc-stamp: config-btyacc-stamp
|
||||||
|
dh_testdir
|
||||||
|
|
||||||
|
cd $(BTYACC_TMP); $(MAKE)
|
||||||
|
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
install-byacc-stamp: build-byacc-stamp
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_installdirs
|
||||||
|
|
||||||
|
cd $(BYACC_TMP); $(MAKE) install DESTDIR=$(BYACC_DIR)
|
||||||
|
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
install-btyacc-stamp: build-btyacc-stamp
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_installdirs
|
||||||
|
|
||||||
|
cd $(BTYACC_TMP); $(MAKE) install DESTDIR=$(BTYACC_DIR)
|
||||||
|
|
||||||
|
touch $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
dh_testdir
|
dh_testdir
|
||||||
dh_testroot
|
dh_testroot
|
||||||
|
|
||||||
[ ! -f Makefile ] || $(MAKE) clean
|
dh_clean $(verbose)
|
||||||
|
|
||||||
rm -f configure-stamp build-stamp install-stamp \
|
rm -rf t
|
||||||
config.cache config.h config.status config.log makefile
|
|
||||||
|
|
||||||
rm -f *.o yacc
|
|
||||||
|
|
||||||
dh_clean
|
|
||||||
|
|
||||||
install: install-stamp
|
|
||||||
install-stamp: build-stamp
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_clean -k
|
|
||||||
dh_installdirs
|
|
||||||
|
|
||||||
$(MAKE) install DESTDIR=$(CURDIR)/debian/byacc
|
|
||||||
|
|
||||||
touch install-stamp
|
|
||||||
|
|
||||||
# Build architecture-independent files here.
|
|
||||||
binary-indep: build install
|
|
||||||
# No binary-indep target.
|
|
||||||
|
|
||||||
# Build architecture-dependent files here.
|
# Build architecture-dependent files here.
|
||||||
binary-arch: build install
|
binary-arch: build install
|
||||||
|
ifneq ($(PACKAGES.arch),)
|
||||||
|
rm -f $(PACKAGES.arch:%=install-%-stamp)
|
||||||
dh_testdir
|
dh_testdir
|
||||||
dh_testroot
|
dh_testroot
|
||||||
dh_installdocs
|
dh_lintian $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
dh_installexamples
|
dh_installdocs $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
dh_installchangelogs CHANGES
|
dh_installexamples $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
dh_strip
|
dh_installchangelogs $(verbose) $(PACKAGES.arch:%=-p%) CHANGES
|
||||||
dh_compress
|
dh_strip $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
dh_fixperms
|
dh_compress $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
dh_installdeb
|
dh_fixperms $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
dh_shlibdeps
|
dh_installdeb $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
dh_gencontrol
|
dh_shlibdeps $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
dh_md5sums
|
dh_gencontrol $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
dh_builddeb
|
dh_md5sums $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
|
dh_builddeb $(verbose) $(PACKAGES.arch:%=-p%)
|
||||||
|
endif
|
||||||
|
|
||||||
binary: binary-indep binary-arch
|
.PHONY: build clean config config-arch binary binary-arch install install-arch
|
||||||
.PHONY: build clean binary-indep binary-arch binary install install-stamp
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
version=3
|
version=3
|
||||||
|
|
||||||
opts=passive ftp://invisible-island.net/byacc/byacc-(\d+)\.tgz \
|
opts=passive ftp://ftp.invisible-island.net/byacc/byacc-(\d+)\.tgz \
|
||||||
debian uupdate
|
debian uupdate
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Summary: byacc - public domain Berkeley LALR Yacc parser generator
|
Summary: byacc - public domain Berkeley LALR Yacc parser generator
|
||||||
%define AppProgram byacc
|
%define AppProgram byacc
|
||||||
%define AppVersion 20170430
|
%define AppVersion 20200330
|
||||||
%define UseProgram yacc
|
%define UseProgram yacc
|
||||||
# $XTermId: mingw-byacc.spec,v 1.16 2017/04/30 20:55:15 tom Exp $
|
# $Id: mingw-byacc.spec,v 1.29 2020/03/30 23:31:42 tom Exp $
|
||||||
Name: %{AppProgram}
|
Name: %{AppProgram}
|
||||||
Version: %{AppVersion}
|
Version: %{AppVersion}
|
||||||
Release: 1
|
Release: 1
|
||||||
@ -21,12 +21,12 @@ license which includes the generated C.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
|
||||||
|
%define debug_package %{nil}
|
||||||
|
|
||||||
%setup -q -n %{AppProgram}-%{AppVersion}
|
%setup -q -n %{AppProgram}-%{AppVersion}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
%configure --verbose \
|
||||||
INSTALL_PROGRAM='${INSTALL}' \
|
|
||||||
./configure \
|
|
||||||
--program-prefix=b \
|
--program-prefix=b \
|
||||||
--target %{_target_platform} \
|
--target %{_target_platform} \
|
||||||
--prefix=%{_prefix} \
|
--prefix=%{_prefix} \
|
||||||
@ -56,5 +56,8 @@ strip $RPM_BUILD_ROOT%{_bindir}/%{AppProgram}
|
|||||||
%changelog
|
%changelog
|
||||||
# each patch should add its ChangeLog entries here
|
# each patch should add its ChangeLog entries here
|
||||||
|
|
||||||
|
* Sun Jul 09 2017 Thomas Dickey
|
||||||
|
- use predefined "configure"
|
||||||
|
|
||||||
* Wed Sep 25 2013 Thomas Dickey
|
* Wed Sep 25 2013 Thomas Dickey
|
||||||
- cloned from byacc.spec
|
- cloned from byacc.spec
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
# $NetBSD: Makefile,v 1.9 2008/07/24 17:13:00 tonnerre Exp $
|
# $NetBSD: Makefile,v 1.9 2008/07/24 17:13:00 tonnerre Exp $
|
||||||
#
|
#
|
||||||
|
|
||||||
DISTNAME= byacc-20170430
|
DISTNAME= byacc-20200330
|
||||||
PKGREVISION= 1
|
PKGREVISION= 1
|
||||||
CATEGORIES= devel
|
CATEGORIES= devel
|
||||||
MASTER_SITES= ftp://invisible-island.net/byacc/
|
MASTER_SITES= ftp://ftp.invisible-island.net/byacc/
|
||||||
EXTRACT_SUFX= .tgz
|
EXTRACT_SUFX= .tgz
|
||||||
|
|
||||||
MAINTAINER= pkgsrc-users@NetBSD.org
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
/* $Id: reader.c,v 1.68 2017/02/02 01:05:36 tom Exp $ */
|
/* $Id: reader.c,v 1.79 2020/03/30 23:54:13 tom Exp $ */
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
|
||||||
/* The line size must be a positive integer. One hundred was chosen */
|
/* The line size must be a positive integer. One hundred was chosen */
|
||||||
/* because few lines in Yacc input grammars exceed 100 characters. */
|
/* because few lines in Yacc input grammars exceed 100 characters. */
|
||||||
/* Note that if a line exceeds LINESIZE characters, the line buffer */
|
/* Note that if a line exceeds LINESIZE characters, the line buffer */
|
||||||
/* will be expanded to accomodate it. */
|
/* will be expanded to accommodate it. */
|
||||||
|
|
||||||
#define LINESIZE 100
|
#define LINESIZE 100
|
||||||
|
|
||||||
@ -62,6 +62,13 @@ char line_format[] = "#line %d \"%s\"\n";
|
|||||||
param *lex_param;
|
param *lex_param;
|
||||||
param *parse_param;
|
param *parse_param;
|
||||||
|
|
||||||
|
static const char *code_keys[] =
|
||||||
|
{
|
||||||
|
"", "requires", "provides", "top", "imports",
|
||||||
|
};
|
||||||
|
|
||||||
|
struct code_lines code_lines[CODE_MAX];
|
||||||
|
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
int destructor = 0; /* =1 if at least one %destructor */
|
int destructor = 0; /* =1 if at least one %destructor */
|
||||||
|
|
||||||
@ -144,7 +151,7 @@ line_directive(void)
|
|||||||
switch (ld)
|
switch (ld)
|
||||||
{
|
{
|
||||||
case ldSPC1:
|
case ldSPC1:
|
||||||
if (isspace(ch))
|
if (isspace(UCH(ch)))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -153,7 +160,7 @@ line_directive(void)
|
|||||||
ld = ldSPC2;
|
ld = ldSPC2;
|
||||||
break;
|
break;
|
||||||
case ldSPC2:
|
case ldSPC2:
|
||||||
if (isspace(ch))
|
if (isspace(UCH(ch)))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -171,26 +178,26 @@ line_directive(void)
|
|||||||
ld = ldSPC3;
|
ld = ldSPC3;
|
||||||
break;
|
break;
|
||||||
case ldSPC3:
|
case ldSPC3:
|
||||||
if (isspace(ch))
|
if (isspace(UCH(ch)))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
UNLESS(!isdigit(ch));
|
UNLESS(!isdigit(UCH(ch)));
|
||||||
line_1st = n;
|
line_1st = n;
|
||||||
ld = ldNUM;
|
ld = ldNUM;
|
||||||
/* FALLTHRU */
|
/* FALLTHRU */
|
||||||
case ldNUM:
|
case ldNUM:
|
||||||
if (isdigit(ch))
|
if (isdigit(UCH(ch)))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
UNLESS(!isspace(ch));
|
UNLESS(!isspace(UCH(ch)));
|
||||||
ld = ldSPC4;
|
ld = ldSPC4;
|
||||||
break;
|
break;
|
||||||
case ldSPC4:
|
case ldSPC4:
|
||||||
if (isspace(ch))
|
if (isspace(UCH(ch)))
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -217,19 +224,33 @@ line_directive(void)
|
|||||||
if (ld == ldOK)
|
if (ld == ldOK)
|
||||||
{
|
{
|
||||||
size_t need = (size_t) (name_end - name_1st);
|
size_t need = (size_t) (name_end - name_1st);
|
||||||
if (need > input_file_name_len)
|
if ((long)need > (long)input_file_name_len)
|
||||||
{
|
{
|
||||||
input_file_name_len = need;
|
input_file_name_len = ((need + 1) * 3) / 2;
|
||||||
input_file_name = TREALLOC(char, input_file_name, need + 1);
|
input_file_name = TREALLOC(char, input_file_name, input_file_name_len);
|
||||||
NO_SPACE(input_file_name);
|
NO_SPACE(input_file_name);
|
||||||
}
|
}
|
||||||
memcpy(input_file_name, line + name_1st + 1, need - 1);
|
if ((long)need > 0)
|
||||||
input_file_name[need - 1] = '\0';
|
{
|
||||||
|
memcpy(input_file_name, line + name_1st + 1, need - 1);
|
||||||
|
input_file_name[need - 1] = '\0';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
input_file_name[0] = '\0';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ld >= ldNUM && ld < ldERR)
|
if (ld >= ldNUM && ld < ldERR)
|
||||||
{
|
{
|
||||||
lineno = (int)strtol(line + line_1st, NULL, 10) - 1;
|
if (line_1st >= 0)
|
||||||
|
{
|
||||||
|
lineno = (int)strtol(line + line_1st, NULL, 10) - 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lineno = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (ld == ldOK);
|
return (ld == ldOK);
|
||||||
@ -423,11 +444,12 @@ nextc(void)
|
|||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
static struct keyword
|
static struct keyword
|
||||||
{
|
{
|
||||||
char name[14];
|
char name[16];
|
||||||
int token;
|
int token;
|
||||||
}
|
}
|
||||||
keywords[] = {
|
keywords[] = {
|
||||||
{ "binary", NONASSOC },
|
{ "binary", NONASSOC },
|
||||||
|
{ "code", XCODE },
|
||||||
{ "debug", XXXDEBUG },
|
{ "debug", XXXDEBUG },
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
{ "destructor", DESTRUCTOR },
|
{ "destructor", DESTRUCTOR },
|
||||||
@ -435,7 +457,7 @@ keywords[] = {
|
|||||||
{ "error-verbose",ERROR_VERBOSE },
|
{ "error-verbose",ERROR_VERBOSE },
|
||||||
{ "expect", EXPECT },
|
{ "expect", EXPECT },
|
||||||
{ "expect-rr", EXPECT_RR },
|
{ "expect-rr", EXPECT_RR },
|
||||||
{ "ident", IDENT },
|
{ "ident", IDENT },
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
{ "initial-action", INITIAL_ACTION },
|
{ "initial-action", INITIAL_ACTION },
|
||||||
#endif
|
#endif
|
||||||
@ -447,11 +469,11 @@ keywords[] = {
|
|||||||
{ "nonassoc", NONASSOC },
|
{ "nonassoc", NONASSOC },
|
||||||
{ "parse-param", PARSE_PARAM },
|
{ "parse-param", PARSE_PARAM },
|
||||||
{ "pure-parser", PURE_PARSER },
|
{ "pure-parser", PURE_PARSER },
|
||||||
{ "right", RIGHT },
|
{ "right", RIGHT },
|
||||||
{ "start", START },
|
{ "start", START },
|
||||||
{ "term", TOKEN },
|
{ "term", TOKEN },
|
||||||
{ "token", TOKEN },
|
{ "token", TOKEN },
|
||||||
{ "token-table", TOKEN_TABLE },
|
{ "token-table", TOKEN_TABLE },
|
||||||
{ "type", TYPE },
|
{ "type", TYPE },
|
||||||
{ "union", UNION },
|
{ "union", UNION },
|
||||||
{ "yacc", POSIX_YACC },
|
{ "yacc", POSIX_YACC },
|
||||||
@ -474,18 +496,18 @@ keyword(void)
|
|||||||
struct keyword *key;
|
struct keyword *key;
|
||||||
|
|
||||||
c = *++cptr;
|
c = *++cptr;
|
||||||
if (isalpha(c))
|
if (isalpha(UCH(c)))
|
||||||
{
|
{
|
||||||
cinc = 0;
|
cinc = 0;
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
if (isalpha(c))
|
if (isalpha(UCH(c)))
|
||||||
{
|
{
|
||||||
if (isupper(c))
|
if (isupper(UCH(c)))
|
||||||
c = tolower(c);
|
c = tolower(c);
|
||||||
cachec(c);
|
cachec(c);
|
||||||
}
|
}
|
||||||
else if (isdigit(c)
|
else if (isdigit(UCH(c))
|
||||||
|| c == '-'
|
|| c == '-'
|
||||||
|| c == '.'
|
|| c == '.'
|
||||||
|| c == '$')
|
|| c == '$')
|
||||||
@ -646,6 +668,127 @@ copy_comment(void)
|
|||||||
return msdone(temp);
|
return msdone(temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
check_key(int pos)
|
||||||
|
{
|
||||||
|
const char *key = code_keys[pos];
|
||||||
|
while (*cptr && *key)
|
||||||
|
if (*key++ != *cptr++)
|
||||||
|
return 0;
|
||||||
|
if (*key || (!isspace(UCH(*cptr)) && *cptr != L_CURL))
|
||||||
|
return 0;
|
||||||
|
cptr--;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
copy_code(void)
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
int curl;
|
||||||
|
int cline;
|
||||||
|
int on_line = 0;
|
||||||
|
int pos = CODE_HEADER;
|
||||||
|
struct mstring *code_mstr;
|
||||||
|
|
||||||
|
/* read %code <keyword> { */
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
c = *++cptr;
|
||||||
|
if (c == EOF)
|
||||||
|
unexpected_EOF();
|
||||||
|
if (isspace(UCH(c)))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (c == L_CURL)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (pos == CODE_HEADER)
|
||||||
|
{
|
||||||
|
switch (UCH(c))
|
||||||
|
{
|
||||||
|
case 'r':
|
||||||
|
pos = CODE_REQUIRES;
|
||||||
|
break;
|
||||||
|
case 'p':
|
||||||
|
pos = CODE_PROVIDES;
|
||||||
|
break;
|
||||||
|
case 't':
|
||||||
|
pos = CODE_TOP;
|
||||||
|
break;
|
||||||
|
case 'i':
|
||||||
|
pos = CODE_IMPORTS;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pos == -1 || !check_key(pos))
|
||||||
|
{
|
||||||
|
syntax_error(lineno, line, cptr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cptr++; /* skip initial curl */
|
||||||
|
while (*cptr && isspace(UCH(*cptr))) /* skip space */
|
||||||
|
cptr++;
|
||||||
|
curl = 1; /* nesting count */
|
||||||
|
|
||||||
|
/* gather text */
|
||||||
|
code_lines[pos].name = code_keys[pos];
|
||||||
|
if ((cline = (int)code_lines[pos].num) != 0)
|
||||||
|
{
|
||||||
|
code_mstr = msrenew(code_lines[pos].lines);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
code_mstr = msnew();
|
||||||
|
}
|
||||||
|
cline++;
|
||||||
|
msprintf(code_mstr, line_format, lineno, input_file_name);
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
c = *cptr++;
|
||||||
|
switch (c)
|
||||||
|
{
|
||||||
|
case '\0':
|
||||||
|
get_line();
|
||||||
|
if (line == NULL)
|
||||||
|
{
|
||||||
|
unexpected_EOF();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
case '\n':
|
||||||
|
cline++;
|
||||||
|
on_line = 0;
|
||||||
|
break;
|
||||||
|
case L_CURL:
|
||||||
|
curl++;
|
||||||
|
break;
|
||||||
|
case R_CURL:
|
||||||
|
if (--curl == 0)
|
||||||
|
{
|
||||||
|
if (on_line > 1)
|
||||||
|
{
|
||||||
|
mputc(code_mstr, '\n');
|
||||||
|
cline++;
|
||||||
|
}
|
||||||
|
code_lines[pos].lines = msdone(code_mstr);
|
||||||
|
code_lines[pos].num = (size_t) cline;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
mputc(code_mstr, c);
|
||||||
|
on_line++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
copy_text(void)
|
copy_text(void)
|
||||||
{
|
{
|
||||||
@ -1235,7 +1378,7 @@ get_literal(void)
|
|||||||
cachec('\\');
|
cachec('\\');
|
||||||
cachec(c);
|
cachec(c);
|
||||||
}
|
}
|
||||||
else if (isprint(c))
|
else if (isprint(UCH(c)))
|
||||||
cachec(c);
|
cachec(c);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1329,13 +1472,21 @@ static Value_t
|
|||||||
get_number(void)
|
get_number(void)
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
Value_t n;
|
long n;
|
||||||
|
char *base = cptr;
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
for (c = *cptr; isdigit(c); c = *++cptr)
|
for (c = *cptr; isdigit(UCH(c)); c = *++cptr)
|
||||||
n = (Value_t)(10 * n + (c - '0'));
|
{
|
||||||
|
n = (10 * n + (c - '0'));
|
||||||
|
if (n > MAXYYINT)
|
||||||
|
{
|
||||||
|
syntax_error(lineno, line, base);
|
||||||
|
/*NOTREACHED */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (n);
|
return (Value_t)(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
@ -1382,7 +1533,7 @@ get_tag(void)
|
|||||||
c = nextc();
|
c = nextc();
|
||||||
if (c == EOF)
|
if (c == EOF)
|
||||||
unexpected_EOF();
|
unexpected_EOF();
|
||||||
if (!isalpha(c) && c != '_' && c != '$')
|
if (!IS_NAME1(c))
|
||||||
illegal_tag(t_lineno, t_line, t_cptr);
|
illegal_tag(t_lineno, t_line, t_cptr);
|
||||||
|
|
||||||
cinc = 0;
|
cinc = 0;
|
||||||
@ -1412,7 +1563,7 @@ scan_id(void)
|
|||||||
{
|
{
|
||||||
char *b = cptr;
|
char *b = cptr;
|
||||||
|
|
||||||
while (isalnum(UCH(*cptr)) || *cptr == '_' || *cptr == '$')
|
while (IS_NAME2(UCH(*cptr)))
|
||||||
cptr++;
|
cptr++;
|
||||||
return cache_tag(b, (size_t) (cptr - b));
|
return cache_tag(b, (size_t) (cptr - b));
|
||||||
}
|
}
|
||||||
@ -1442,7 +1593,7 @@ declare_tokens(int assoc)
|
|||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
if (isalpha(c) || c == '_' || c == '.' || c == '$')
|
if (isalpha(UCH(c)) || c == '_' || c == '.' || c == '$')
|
||||||
bp = get_name();
|
bp = get_name();
|
||||||
else if (c == '\'' || c == '"')
|
else if (c == '\'' || c == '"')
|
||||||
bp = get_literal();
|
bp = get_literal();
|
||||||
@ -1472,8 +1623,7 @@ declare_tokens(int assoc)
|
|||||||
if (c == EOF)
|
if (c == EOF)
|
||||||
unexpected_EOF();
|
unexpected_EOF();
|
||||||
|
|
||||||
value = UNDEFINED;
|
if (isdigit(UCH(c)))
|
||||||
if (isdigit(c))
|
|
||||||
{
|
{
|
||||||
value = get_number();
|
value = get_number();
|
||||||
if (bp->value != UNDEFINED && value != bp->value)
|
if (bp->value != UNDEFINED && value != bp->value)
|
||||||
@ -1509,7 +1659,7 @@ declare_expect(int assoc)
|
|||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
if (isdigit(c))
|
if (isdigit(UCH(c)))
|
||||||
{
|
{
|
||||||
if (assoc == EXPECT)
|
if (assoc == EXPECT)
|
||||||
SRexpect = get_number();
|
SRexpect = get_number();
|
||||||
@ -1522,7 +1672,7 @@ declare_expect(int assoc)
|
|||||||
* Spaces, tabs, and numbers are ok,
|
* Spaces, tabs, and numbers are ok,
|
||||||
* words, punc., etc. are syntax errors.
|
* words, punc., etc. are syntax errors.
|
||||||
*/
|
*/
|
||||||
else if (c == '\n' || isalpha(c) || !isspace(c))
|
else if (c == '\n' || isalpha(UCH(c)) || !isspace(UCH(c)))
|
||||||
{
|
{
|
||||||
syntax_error(lineno, line, cptr);
|
syntax_error(lineno, line, cptr);
|
||||||
}
|
}
|
||||||
@ -1591,7 +1741,7 @@ declare_types(void)
|
|||||||
c = nextc();
|
c = nextc();
|
||||||
if (c == EOF)
|
if (c == EOF)
|
||||||
unexpected_EOF();
|
unexpected_EOF();
|
||||||
if (isalpha(c) || c == '_' || c == '.' || c == '$')
|
if (isalpha(UCH(c)) || c == '_' || c == '.' || c == '$')
|
||||||
{
|
{
|
||||||
bp = get_name();
|
bp = get_name();
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
@ -1629,7 +1779,7 @@ declare_start(void)
|
|||||||
c = nextc();
|
c = nextc();
|
||||||
if (c == EOF)
|
if (c == EOF)
|
||||||
unexpected_EOF();
|
unexpected_EOF();
|
||||||
if (!isalpha(c) && c != '_' && c != '.' && c != '$')
|
if (!isalpha(UCH(c)) && c != '_' && c != '.' && c != '$')
|
||||||
syntax_error(lineno, line, cptr);
|
syntax_error(lineno, line, cptr);
|
||||||
bp = get_name();
|
bp = get_name();
|
||||||
if (bp->class == TERM)
|
if (bp->class == TERM)
|
||||||
@ -1664,6 +1814,10 @@ read_declarations(void)
|
|||||||
copy_ident();
|
copy_ident();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case XCODE:
|
||||||
|
copy_code();
|
||||||
|
break;
|
||||||
|
|
||||||
case TEXT:
|
case TEXT:
|
||||||
copy_text();
|
copy_text();
|
||||||
break;
|
break;
|
||||||
@ -1871,7 +2025,7 @@ parse_id(char *p, char **save)
|
|||||||
if (!isalpha(UCH(*p)) && *p != '_')
|
if (!isalpha(UCH(*p)) && *p != '_')
|
||||||
return NULL;
|
return NULL;
|
||||||
b = p;
|
b = p;
|
||||||
while (isalnum(UCH(*p)) || *p == '_' || *p == '$')
|
while (IS_NAME2(UCH(*p)))
|
||||||
p++;
|
p++;
|
||||||
if (save)
|
if (save)
|
||||||
{
|
{
|
||||||
@ -2129,7 +2283,10 @@ can_elide_arg(char **theptr, char *yyvaltag)
|
|||||||
{
|
{
|
||||||
char *arg;
|
char *arg;
|
||||||
if (!(p = parse_id(p, &arg)))
|
if (!(p = parse_id(p, &arg)))
|
||||||
|
{
|
||||||
|
FREE(offsets);
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
for (i = plhs[nrules]->args - 1; i >= 0; i--)
|
for (i = plhs[nrules]->args - 1; i >= 0; i--)
|
||||||
if (arg == plhs[nrules]->argnames[i])
|
if (arg == plhs[nrules]->argnames[i])
|
||||||
break;
|
break;
|
||||||
@ -2149,7 +2306,7 @@ can_elide_arg(char **theptr, char *yyvaltag)
|
|||||||
rv = 0;
|
rv = 0;
|
||||||
if (maxoffset > 0)
|
if (maxoffset > 0)
|
||||||
FREE(offsets);
|
FREE(offsets);
|
||||||
if (*p || rv <= 0)
|
if (p == 0 || *p || rv <= 0)
|
||||||
return 0;
|
return 0;
|
||||||
*theptr = p + 1;
|
*theptr = p + 1;
|
||||||
return rv;
|
return rv;
|
||||||
@ -2228,6 +2385,10 @@ advance_to_start(void)
|
|||||||
s_cptr = cptr;
|
s_cptr = cptr;
|
||||||
switch (keyword())
|
switch (keyword())
|
||||||
{
|
{
|
||||||
|
case XCODE:
|
||||||
|
copy_code();
|
||||||
|
break;
|
||||||
|
|
||||||
case MARK:
|
case MARK:
|
||||||
no_grammar();
|
no_grammar();
|
||||||
|
|
||||||
@ -2245,7 +2406,7 @@ advance_to_start(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
c = nextc();
|
c = nextc();
|
||||||
if (!isalpha(c) && c != '_' && c != '.' && c != '_')
|
if (!isalpha(UCH(c)) && c != '_' && c != '.' && c != '_')
|
||||||
syntax_error(lineno, line, cptr);
|
syntax_error(lineno, line, cptr);
|
||||||
bp = get_name();
|
bp = get_name();
|
||||||
if (goal == 0)
|
if (goal == 0)
|
||||||
@ -2572,7 +2733,7 @@ copy_action(void)
|
|||||||
FREE(d_line);
|
FREE(d_line);
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
else if (isdigit(c))
|
else if (isdigit(UCH(c)))
|
||||||
{
|
{
|
||||||
i = get_number();
|
i = get_number();
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
@ -2596,7 +2757,7 @@ copy_action(void)
|
|||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
#if defined(YYBTYACC)
|
#if defined(YYBTYACC)
|
||||||
else if (isalpha(c) || c == '_')
|
else if (isalpha(UCH(c)) || c == '_')
|
||||||
{
|
{
|
||||||
char *arg = scan_id();
|
char *arg = scan_id();
|
||||||
for (i = plhs[nrules]->args - 1; i >= 0; i--)
|
for (i = plhs[nrules]->args - 1; i >= 0; i--)
|
||||||
@ -2727,14 +2888,14 @@ copy_action(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (isalpha(c) || c == '_' || c == '$')
|
if (IS_NAME1(c))
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
putc(c, f);
|
putc(c, f);
|
||||||
c = *++cptr;
|
c = *++cptr;
|
||||||
}
|
}
|
||||||
while (isalnum(c) || c == '_' || c == '$');
|
while (IS_NAME2(c));
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
++cptr;
|
++cptr;
|
||||||
@ -2923,14 +3084,14 @@ get_code(struct ainfo *a, const char *loc)
|
|||||||
cptr += 2;
|
cptr += 2;
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
if (isalpha(c) || c == '_' || c == '$')
|
if (IS_NAME1(c))
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
mputc(code_mstr, c);
|
mputc(code_mstr, c);
|
||||||
c = *++cptr;
|
c = *++cptr;
|
||||||
}
|
}
|
||||||
while (isalnum(c) || c == '_' || c == '$');
|
while (IS_NAME2(c));
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
++cptr;
|
++cptr;
|
||||||
@ -3049,7 +3210,7 @@ copy_destructor(void)
|
|||||||
bp->destructor = process_destructor_XX(code_text, tag);
|
bp->destructor = process_destructor_XX(code_text, tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (isalpha(c) || c == '_' || c == '.' || c == '$')
|
else if (isalpha(UCH(c)) || c == '_' || c == '.' || c == '$')
|
||||||
{ /* "symbol" destructor */
|
{ /* "symbol" destructor */
|
||||||
bp = get_name();
|
bp = get_name();
|
||||||
if (bp->destructor != NULL)
|
if (bp->destructor != NULL)
|
||||||
@ -3090,14 +3251,14 @@ process_destructor_XX(char *code, char *tag)
|
|||||||
msprintf(new_code, "(*val).%s", tag);
|
msprintf(new_code, "(*val).%s", tag);
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
if (isalpha(c) || c == '_' || c == '$')
|
if (IS_NAME1(c))
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
mputc(new_code, c);
|
mputc(new_code, c);
|
||||||
c = *++codeptr;
|
c = *++codeptr;
|
||||||
}
|
}
|
||||||
while (isalnum(c) || c == '_' || c == '$');
|
while (IS_NAME2(c));
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
++codeptr;
|
++codeptr;
|
||||||
@ -3180,7 +3341,7 @@ mark_symbol(void)
|
|||||||
syntax_error(lineno, line, cptr);
|
syntax_error(lineno, line, cptr);
|
||||||
|
|
||||||
c = nextc();
|
c = nextc();
|
||||||
if (isalpha(c) || c == '_' || c == '.' || c == '$')
|
if (isalpha(UCH(c)) || c == '_' || c == '.' || c == '$')
|
||||||
bp = get_name();
|
bp = get_name();
|
||||||
else if (c == '\'' || c == '"')
|
else if (c == '\'' || c == '"')
|
||||||
bp = get_literal();
|
bp = get_literal();
|
||||||
@ -3211,7 +3372,7 @@ read_grammar(void)
|
|||||||
c = nextc();
|
c = nextc();
|
||||||
if (c == EOF)
|
if (c == EOF)
|
||||||
break;
|
break;
|
||||||
if (isalpha(c)
|
if (isalpha(UCH(c))
|
||||||
|| c == '_'
|
|| c == '_'
|
||||||
|| c == '.'
|
|| c == '.'
|
||||||
|| c == '$'
|
|| c == '$'
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
Usage: YACC [options] filename
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-b file_prefix set filename prefix (default "y.")
|
||||||
|
-B create a backtracking parser
|
||||||
|
-d write definitions (.tab.h)
|
||||||
|
-H defines_file write definitions to defines_file
|
||||||
|
-i write interface (y.tab.i)
|
||||||
|
-g write a graphical description
|
||||||
|
-l suppress #line directives
|
||||||
|
-L enable position processing, e.g., "%locations"
|
||||||
|
-o output_file (default ".tab.c")
|
||||||
|
-p symbol_prefix set symbol prefix (default "yy")
|
||||||
|
-P create a reentrant parser, e.g., "%pure-parser"
|
||||||
|
-r produce separate code and table files (y.code.c)
|
||||||
|
-s suppress #define's for quoted names in %token lines
|
||||||
|
-t add debugging support
|
||||||
|
-v write description (y.output)
|
||||||
|
-V show version information and exit
|
@ -1,18 +0,0 @@
|
|||||||
Usage: YACC [options] filename
|
|
||||||
|
|
||||||
Options:
|
|
||||||
-b file_prefix set filename prefix (default "y.")
|
|
||||||
-B create a backtracking parser
|
|
||||||
-d write definitions (.tab.h)
|
|
||||||
-i write interface (y.tab.i)
|
|
||||||
-g write a graphical description
|
|
||||||
-l suppress #line directives
|
|
||||||
-L enable position processing, e.g., "%locations"
|
|
||||||
-o output_file (default ".tab.c")
|
|
||||||
-p symbol_prefix set symbol prefix (default "yy")
|
|
||||||
-P create a reentrant parser, e.g., "%pure-parser"
|
|
||||||
-r produce separate code and table files (y.code.c)
|
|
||||||
-s suppress #define's for quoted names in %token lines
|
|
||||||
-t add debugging support
|
|
||||||
-v write description (y.output)
|
|
||||||
-V show version information and exit
|
|
@ -0,0 +1,19 @@
|
|||||||
|
Usage: YACC [options] filename
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-b file_prefix set filename prefix (default "y.")
|
||||||
|
-B create a backtracking parser
|
||||||
|
-d write definitions (.tab.h)
|
||||||
|
-H defines_file write definitions to defines_file
|
||||||
|
-i write interface (y.tab.i)
|
||||||
|
-g write a graphical description
|
||||||
|
-l suppress #line directives
|
||||||
|
-L enable position processing, e.g., "%locations"
|
||||||
|
-o output_file (default ".tab.c")
|
||||||
|
-p symbol_prefix set symbol prefix (default "yy")
|
||||||
|
-P create a reentrant parser, e.g., "%pure-parser"
|
||||||
|
-r produce separate code and table files (y.code.c)
|
||||||
|
-s suppress #define's for quoted names in %token lines
|
||||||
|
-t add debugging support
|
||||||
|
-v write description (y.output)
|
||||||
|
-V show version information and exit
|
@ -1,18 +0,0 @@
|
|||||||
Usage: YACC [options] filename
|
|
||||||
|
|
||||||
Options:
|
|
||||||
-b file_prefix set filename prefix (default "y.")
|
|
||||||
-B create a backtracking parser
|
|
||||||
-d write definitions (.tab.h)
|
|
||||||
-i write interface (y.tab.i)
|
|
||||||
-g write a graphical description
|
|
||||||
-l suppress #line directives
|
|
||||||
-L enable position processing, e.g., "%locations"
|
|
||||||
-o output_file (default ".tab.c")
|
|
||||||
-p symbol_prefix set symbol prefix (default "yy")
|
|
||||||
-P create a reentrant parser, e.g., "%pure-parser"
|
|
||||||
-r produce separate code and table files (y.code.c)
|
|
||||||
-s suppress #define's for quoted names in %token lines
|
|
||||||
-t add debugging support
|
|
||||||
-v write description (y.output)
|
|
||||||
-V show version information and exit
|
|
@ -196,7 +196,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define CONST 259
|
#define CONST 259
|
||||||
#define UMINUS 260
|
#define UMINUS 260
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT calc1_lhs[] = { -1,
|
static const YYINT calc1_lhs[] = { -1,
|
||||||
0, 0, 0, 3, 3, 3, 3, 1, 1, 1,
|
0, 0, 0, 3, 3, 3, 3, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
|
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
|
||||||
@ -389,8 +389,9 @@ static const char *const calc1_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
#ifndef YYLLOC_DEFAULT
|
#ifndef YYLLOC_DEFAULT
|
||||||
@ -399,17 +400,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -615,7 +616,7 @@ vdiv(double a, double b, INTERVAL v)
|
|||||||
{
|
{
|
||||||
return (hilo(a / v.hi, a / v.lo, b / v.hi, b / v.lo));
|
return (hilo(a / v.hi, a / v.lo, b / v.hi, b / v.lo));
|
||||||
}
|
}
|
||||||
#line 619 "btyacc_calc1.tab.c"
|
#line 620 "btyacc_calc1.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -752,6 +753,8 @@ YYPARSE_DECL()
|
|||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -804,7 +807,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -880,10 +883,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -994,7 +997,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1204,7 +1207,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1233,7 +1236,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1249,7 +1252,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1335,10 +1338,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1537,7 +1540,7 @@ case 28:
|
|||||||
yyval.vval = yystack.l_mark[-1].vval;
|
yyval.vval = yystack.l_mark[-1].vval;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#line 1541 "btyacc_calc1.tab.c"
|
#line 1544 "btyacc_calc1.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1592,12 +1595,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -18,6 +18,5 @@ typedef union
|
|||||||
INTERVAL vval;
|
INTERVAL vval;
|
||||||
} YYSTYPE;
|
} YYSTYPE;
|
||||||
#endif /* !YYSTYPE_IS_DECLARED */
|
#endif /* !YYSTYPE_IS_DECLARED */
|
||||||
extern YYSTYPE calc1_lval;
|
|
||||||
|
|
||||||
#endif /* _calc1__defines_h_ */
|
#endif /* _calc1__defines_h_ */
|
||||||
|
@ -231,7 +231,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define ELSE 268
|
#define ELSE 268
|
||||||
#define CLCL 269
|
#define CLCL 269
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT demo_lhs[] = { -1,
|
static const YYINT demo_lhs[] = { -1,
|
||||||
15, 15, 15, 12, 18, 0, 4, 19, 4, 2,
|
15, 15, 15, 12, 18, 0, 4, 19, 4, 2,
|
||||||
20, 2, 10, 10, 13, 13, 11, 11, 11, 11,
|
20, 2, 10, 10, 13, 13, 11, 11, 11, 11,
|
||||||
@ -508,13 +508,16 @@ static const char *const demo_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -527,17 +530,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -660,7 +663,7 @@ extern Expr * var_expr(Scope *scope, char *id);
|
|||||||
extern Code * build_expr_code(Expr *expr);
|
extern Code * build_expr_code(Expr *expr);
|
||||||
extern Code * build_if(Expr *cond_expr, Code *then_stmt, Code *else_stmt);
|
extern Code * build_if(Expr *cond_expr, Code *then_stmt, Code *else_stmt);
|
||||||
extern Code * code_append(Code *stmt_list, Code *stmt);
|
extern Code * code_append(Code *stmt_list, Code *stmt);
|
||||||
#line 664 "btyacc_demo.tab.c"
|
#line 667 "btyacc_demo.tab.c"
|
||||||
|
|
||||||
/* Release memory associated with symbol. */
|
/* Release memory associated with symbol. */
|
||||||
#if ! defined YYDESTRUCT_IS_DECLARED
|
#if ! defined YYDESTRUCT_IS_DECLARED
|
||||||
@ -677,7 +680,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 681 "btyacc_demo.tab.c"
|
#line 684 "btyacc_demo.tab.c"
|
||||||
case 45:
|
case 45:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -686,7 +689,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 690 "btyacc_demo.tab.c"
|
#line 693 "btyacc_demo.tab.c"
|
||||||
case 42:
|
case 42:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -695,7 +698,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 699 "btyacc_demo.tab.c"
|
#line 702 "btyacc_demo.tab.c"
|
||||||
case 47:
|
case 47:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -704,7 +707,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 708 "btyacc_demo.tab.c"
|
#line 711 "btyacc_demo.tab.c"
|
||||||
case 37:
|
case 37:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -713,7 +716,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 717 "btyacc_demo.tab.c"
|
#line 720 "btyacc_demo.tab.c"
|
||||||
case 257:
|
case 257:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -722,7 +725,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 726 "btyacc_demo.tab.c"
|
#line 729 "btyacc_demo.tab.c"
|
||||||
case 258:
|
case 258:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -731,7 +734,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 735 "btyacc_demo.tab.c"
|
#line 738 "btyacc_demo.tab.c"
|
||||||
case 40:
|
case 40:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -740,7 +743,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 744 "btyacc_demo.tab.c"
|
#line 747 "btyacc_demo.tab.c"
|
||||||
case 91:
|
case 91:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -749,7 +752,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 753 "btyacc_demo.tab.c"
|
#line 756 "btyacc_demo.tab.c"
|
||||||
case 46:
|
case 46:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -758,7 +761,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 762 "btyacc_demo.tab.c"
|
#line 765 "btyacc_demo.tab.c"
|
||||||
case 259:
|
case 259:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -767,7 +770,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).id); }
|
free((*val).id); }
|
||||||
break;
|
break;
|
||||||
#line 771 "btyacc_demo.tab.c"
|
#line 774 "btyacc_demo.tab.c"
|
||||||
case 260:
|
case 260:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -776,7 +779,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).expr); }
|
free((*val).expr); }
|
||||||
break;
|
break;
|
||||||
#line 780 "btyacc_demo.tab.c"
|
#line 783 "btyacc_demo.tab.c"
|
||||||
case 261:
|
case 261:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -785,7 +788,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 789 "btyacc_demo.tab.c"
|
#line 792 "btyacc_demo.tab.c"
|
||||||
case 262:
|
case 262:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -794,7 +797,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 798 "btyacc_demo.tab.c"
|
#line 801 "btyacc_demo.tab.c"
|
||||||
case 263:
|
case 263:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -803,7 +806,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 807 "btyacc_demo.tab.c"
|
#line 810 "btyacc_demo.tab.c"
|
||||||
case 264:
|
case 264:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -812,7 +815,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 816 "btyacc_demo.tab.c"
|
#line 819 "btyacc_demo.tab.c"
|
||||||
case 265:
|
case 265:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -821,7 +824,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 825 "btyacc_demo.tab.c"
|
#line 828 "btyacc_demo.tab.c"
|
||||||
case 266:
|
case 266:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -830,7 +833,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 834 "btyacc_demo.tab.c"
|
#line 837 "btyacc_demo.tab.c"
|
||||||
case 267:
|
case 267:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -839,7 +842,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 843 "btyacc_demo.tab.c"
|
#line 846 "btyacc_demo.tab.c"
|
||||||
case 268:
|
case 268:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -848,7 +851,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 852 "btyacc_demo.tab.c"
|
#line 855 "btyacc_demo.tab.c"
|
||||||
case 269:
|
case 269:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -857,7 +860,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 861 "btyacc_demo.tab.c"
|
#line 864 "btyacc_demo.tab.c"
|
||||||
case 59:
|
case 59:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -866,7 +869,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 870 "btyacc_demo.tab.c"
|
#line 873 "btyacc_demo.tab.c"
|
||||||
case 44:
|
case 44:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -875,7 +878,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 879 "btyacc_demo.tab.c"
|
#line 882 "btyacc_demo.tab.c"
|
||||||
case 41:
|
case 41:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -884,7 +887,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 888 "btyacc_demo.tab.c"
|
#line 891 "btyacc_demo.tab.c"
|
||||||
case 93:
|
case 93:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -893,7 +896,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 897 "btyacc_demo.tab.c"
|
#line 900 "btyacc_demo.tab.c"
|
||||||
case 123:
|
case 123:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -902,7 +905,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 906 "btyacc_demo.tab.c"
|
#line 909 "btyacc_demo.tab.c"
|
||||||
case 125:
|
case 125:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -911,7 +914,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 915 "btyacc_demo.tab.c"
|
#line 918 "btyacc_demo.tab.c"
|
||||||
case 270:
|
case 270:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -920,7 +923,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 924 "btyacc_demo.tab.c"
|
#line 927 "btyacc_demo.tab.c"
|
||||||
case 271:
|
case 271:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -929,7 +932,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 933 "btyacc_demo.tab.c"
|
#line 936 "btyacc_demo.tab.c"
|
||||||
case 272:
|
case 272:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -938,7 +941,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).expr); }
|
free((*val).expr); }
|
||||||
break;
|
break;
|
||||||
#line 942 "btyacc_demo.tab.c"
|
#line 945 "btyacc_demo.tab.c"
|
||||||
case 273:
|
case 273:
|
||||||
#line 67 "btyacc_demo.y"
|
#line 67 "btyacc_demo.y"
|
||||||
{ /* 'msg' is a 'char *' indicating the context of destructor invocation*/
|
{ /* 'msg' is a 'char *' indicating the context of destructor invocation*/
|
||||||
@ -948,7 +951,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).decl->scope); free((*val).decl->type); }
|
free((*val).decl->scope); free((*val).decl->type); }
|
||||||
break;
|
break;
|
||||||
#line 952 "btyacc_demo.tab.c"
|
#line 955 "btyacc_demo.tab.c"
|
||||||
case 274:
|
case 274:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -957,7 +960,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 961 "btyacc_demo.tab.c"
|
#line 964 "btyacc_demo.tab.c"
|
||||||
case 275:
|
case 275:
|
||||||
#line 83 "btyacc_demo.y"
|
#line 83 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
|
||||||
@ -966,7 +969,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
/* in this example, we don't know what to do here */ }
|
/* in this example, we don't know what to do here */ }
|
||||||
break;
|
break;
|
||||||
#line 970 "btyacc_demo.tab.c"
|
#line 973 "btyacc_demo.tab.c"
|
||||||
case 276:
|
case 276:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -975,7 +978,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).code); }
|
free((*val).code); }
|
||||||
break;
|
break;
|
||||||
#line 979 "btyacc_demo.tab.c"
|
#line 982 "btyacc_demo.tab.c"
|
||||||
case 277:
|
case 277:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -984,7 +987,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).code); }
|
free((*val).code); }
|
||||||
break;
|
break;
|
||||||
#line 988 "btyacc_demo.tab.c"
|
#line 991 "btyacc_demo.tab.c"
|
||||||
case 278:
|
case 278:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -993,7 +996,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).code); }
|
free((*val).code); }
|
||||||
break;
|
break;
|
||||||
#line 997 "btyacc_demo.tab.c"
|
#line 1000 "btyacc_demo.tab.c"
|
||||||
case 279:
|
case 279:
|
||||||
#line 73 "btyacc_demo.y"
|
#line 73 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with type <decl> (case s.b. 279 & 280) @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with type <decl> (case s.b. 279 & 280) @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1002,7 +1005,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).decl); }
|
free((*val).decl); }
|
||||||
break;
|
break;
|
||||||
#line 1006 "btyacc_demo.tab.c"
|
#line 1009 "btyacc_demo.tab.c"
|
||||||
case 280:
|
case 280:
|
||||||
#line 73 "btyacc_demo.y"
|
#line 73 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol with type <decl> (case s.b. 279 & 280) @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol with type <decl> (case s.b. 279 & 280) @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1011,7 +1014,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).decl); }
|
free((*val).decl); }
|
||||||
break;
|
break;
|
||||||
#line 1015 "btyacc_demo.tab.c"
|
#line 1018 "btyacc_demo.tab.c"
|
||||||
case 281:
|
case 281:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1020,7 +1023,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).type); }
|
free((*val).type); }
|
||||||
break;
|
break;
|
||||||
#line 1024 "btyacc_demo.tab.c"
|
#line 1027 "btyacc_demo.tab.c"
|
||||||
case 282:
|
case 282:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1029,7 +1032,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).type); }
|
free((*val).type); }
|
||||||
break;
|
break;
|
||||||
#line 1033 "btyacc_demo.tab.c"
|
#line 1036 "btyacc_demo.tab.c"
|
||||||
case 283:
|
case 283:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1038,7 +1041,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).type); }
|
free((*val).type); }
|
||||||
break;
|
break;
|
||||||
#line 1042 "btyacc_demo.tab.c"
|
#line 1045 "btyacc_demo.tab.c"
|
||||||
case 284:
|
case 284:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1047,7 +1050,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).type); }
|
free((*val).type); }
|
||||||
break;
|
break;
|
||||||
#line 1051 "btyacc_demo.tab.c"
|
#line 1054 "btyacc_demo.tab.c"
|
||||||
case 285:
|
case 285:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1056,7 +1059,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).type); }
|
free((*val).type); }
|
||||||
break;
|
break;
|
||||||
#line 1060 "btyacc_demo.tab.c"
|
#line 1063 "btyacc_demo.tab.c"
|
||||||
case 286:
|
case 286:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1065,7 +1068,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).scope); }
|
free((*val).scope); }
|
||||||
break;
|
break;
|
||||||
#line 1069 "btyacc_demo.tab.c"
|
#line 1072 "btyacc_demo.tab.c"
|
||||||
case 287:
|
case 287:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1074,7 +1077,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).dlist); }
|
free((*val).dlist); }
|
||||||
break;
|
break;
|
||||||
#line 1078 "btyacc_demo.tab.c"
|
#line 1081 "btyacc_demo.tab.c"
|
||||||
case 288:
|
case 288:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1083,7 +1086,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).dlist); }
|
free((*val).dlist); }
|
||||||
break;
|
break;
|
||||||
#line 1087 "btyacc_demo.tab.c"
|
#line 1090 "btyacc_demo.tab.c"
|
||||||
case 289:
|
case 289:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1092,7 +1095,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).scope); }
|
free((*val).scope); }
|
||||||
break;
|
break;
|
||||||
#line 1096 "btyacc_demo.tab.c"
|
#line 1099 "btyacc_demo.tab.c"
|
||||||
case 290:
|
case 290:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1101,7 +1104,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).scope); }
|
free((*val).scope); }
|
||||||
break;
|
break;
|
||||||
#line 1105 "btyacc_demo.tab.c"
|
#line 1108 "btyacc_demo.tab.c"
|
||||||
case 291:
|
case 291:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1110,7 +1113,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).scope); }
|
free((*val).scope); }
|
||||||
break;
|
break;
|
||||||
#line 1114 "btyacc_demo.tab.c"
|
#line 1117 "btyacc_demo.tab.c"
|
||||||
case 292:
|
case 292:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1119,7 +1122,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).scope); }
|
free((*val).scope); }
|
||||||
break;
|
break;
|
||||||
#line 1123 "btyacc_demo.tab.c"
|
#line 1126 "btyacc_demo.tab.c"
|
||||||
case 293:
|
case 293:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1128,7 +1131,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).type); }
|
free((*val).type); }
|
||||||
break;
|
break;
|
||||||
#line 1132 "btyacc_demo.tab.c"
|
#line 1135 "btyacc_demo.tab.c"
|
||||||
case 294:
|
case 294:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1137,7 +1140,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).scope); }
|
free((*val).scope); }
|
||||||
break;
|
break;
|
||||||
#line 1141 "btyacc_demo.tab.c"
|
#line 1144 "btyacc_demo.tab.c"
|
||||||
case 295:
|
case 295:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1146,7 +1149,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).type); }
|
free((*val).type); }
|
||||||
break;
|
break;
|
||||||
#line 1150 "btyacc_demo.tab.c"
|
#line 1153 "btyacc_demo.tab.c"
|
||||||
case 296:
|
case 296:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1155,7 +1158,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).scope); }
|
free((*val).scope); }
|
||||||
break;
|
break;
|
||||||
#line 1159 "btyacc_demo.tab.c"
|
#line 1162 "btyacc_demo.tab.c"
|
||||||
case 297:
|
case 297:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1164,7 +1167,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).scope); }
|
free((*val).scope); }
|
||||||
break;
|
break;
|
||||||
#line 1168 "btyacc_demo.tab.c"
|
#line 1171 "btyacc_demo.tab.c"
|
||||||
case 298:
|
case 298:
|
||||||
#line 78 "btyacc_demo.y"
|
#line 78 "btyacc_demo.y"
|
||||||
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
{ printf("%s accessed by symbol of any type other than <decl> @ position[%d,%d..%d,%d]\n",
|
||||||
@ -1173,7 +1176,7 @@ YYDESTRUCT_DECL()
|
|||||||
(*loc).last_line, (*loc).last_column);
|
(*loc).last_line, (*loc).last_column);
|
||||||
free((*val).scope); }
|
free((*val).scope); }
|
||||||
break;
|
break;
|
||||||
#line 1177 "btyacc_demo.tab.c"
|
#line 1180 "btyacc_demo.tab.c"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#define YYDESTRUCT_IS_DECLARED 1
|
#define YYDESTRUCT_IS_DECLARED 1
|
||||||
@ -1316,7 +1319,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -1383,10 +1386,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -1497,7 +1500,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1707,7 +1710,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1736,7 +1739,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1752,7 +1755,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1838,10 +1841,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -2106,7 +2109,7 @@ case 59:
|
|||||||
#line 197 "btyacc_demo.y"
|
#line 197 "btyacc_demo.y"
|
||||||
{ yyval.code = yystack.l_mark[-1].code; }
|
{ yyval.code = yystack.l_mark[-1].code; }
|
||||||
break;
|
break;
|
||||||
#line 2110 "btyacc_demo.tab.c"
|
#line 2113 "btyacc_demo.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2161,12 +2164,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -46,5 +46,6 @@ typedef struct YYLTYPE
|
|||||||
#define YYLTYPE_IS_DECLARED 1
|
#define YYLTYPE_IS_DECLARED 1
|
||||||
#endif
|
#endif
|
||||||
#define YYRHSLOC(rhs, k) ((rhs)[k])
|
#define YYRHSLOC(rhs, k) ((rhs)[k])
|
||||||
|
extern YYLTYPE demo_lloc;
|
||||||
|
|
||||||
#endif /* _demo__defines_h_ */
|
#endif /* _demo__defines_h_ */
|
||||||
|
@ -1 +0,0 @@
|
|||||||
YACC: e - line 82 of "./btyacc_demo2.y", $$ is untyped
|
|
@ -1,15 +0,0 @@
|
|||||||
/* 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 YYCHECK "yyyymmdd"
|
|
||||||
|
|
||||||
#define YYEMPTY (-1)
|
|
||||||
#define yyclearin (yychar = YYEMPTY)
|
|
||||||
#define yyerrok (yyerrflag = 0)
|
|
||||||
#define YYRECOVERING() (yyerrflag != 0)
|
|
||||||
#define YYENOMEM (-2)
|
|
||||||
#define YYEOF 0
|
|
@ -202,7 +202,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define INTEGER 260
|
#define INTEGER 260
|
||||||
#define NAME 261
|
#define NAME 261
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT destroy1_lhs[] = { -1,
|
static const YYINT destroy1_lhs[] = { -1,
|
||||||
0, 0, 2, 2, 3, 3, 4, 4, 1,
|
0, 0, 2, 2, 3, 3, 4, 4, 1,
|
||||||
};
|
};
|
||||||
@ -357,13 +357,16 @@ static const char *const destroy1_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -376,17 +379,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -485,7 +488,7 @@ static YYINT *yylexemes = 0;
|
|||||||
|
|
||||||
extern int YYLEX_DECL();
|
extern int YYLEX_DECL();
|
||||||
extern void YYERROR_DECL();
|
extern void YYERROR_DECL();
|
||||||
#line 489 "btyacc_destroy1.tab.c"
|
#line 492 "btyacc_destroy1.tab.c"
|
||||||
|
|
||||||
/* Release memory associated with symbol. */
|
/* Release memory associated with symbol. */
|
||||||
#if ! defined YYDESTRUCT_IS_DECLARED
|
#if ! defined YYDESTRUCT_IS_DECLARED
|
||||||
@ -505,7 +508,7 @@ YYDESTRUCT_DECL()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#line 509 "btyacc_destroy1.tab.c"
|
#line 512 "btyacc_destroy1.tab.c"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#define YYDESTRUCT_IS_DECLARED 1
|
#define YYDESTRUCT_IS_DECLARED 1
|
||||||
@ -648,7 +651,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -715,10 +718,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -829,7 +832,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1039,7 +1042,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1068,7 +1071,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1084,7 +1087,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1170,10 +1173,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1228,7 +1231,7 @@ case 9:
|
|||||||
#line 86 "btyacc_destroy1.y"
|
#line 86 "btyacc_destroy1.y"
|
||||||
{ yyval.nlist = yystack.l_mark[-5].nlist; }
|
{ yyval.nlist = yystack.l_mark[-5].nlist; }
|
||||||
break;
|
break;
|
||||||
#line 1232 "btyacc_destroy1.tab.c"
|
#line 1235 "btyacc_destroy1.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1283,12 +1286,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -202,7 +202,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define INTEGER 260
|
#define INTEGER 260
|
||||||
#define NAME 261
|
#define NAME 261
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT destroy2_lhs[] = { -1,
|
static const YYINT destroy2_lhs[] = { -1,
|
||||||
0, 0, 2, 2, 3, 3, 4, 4, 1,
|
0, 0, 2, 2, 3, 3, 4, 4, 1,
|
||||||
};
|
};
|
||||||
@ -357,13 +357,16 @@ static const char *const destroy2_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -376,17 +379,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -485,7 +488,7 @@ static YYINT *yylexemes = 0;
|
|||||||
|
|
||||||
extern int YYLEX_DECL();
|
extern int YYLEX_DECL();
|
||||||
extern void YYERROR_DECL();
|
extern void YYERROR_DECL();
|
||||||
#line 489 "btyacc_destroy2.tab.c"
|
#line 492 "btyacc_destroy2.tab.c"
|
||||||
|
|
||||||
/* Release memory associated with symbol. */
|
/* Release memory associated with symbol. */
|
||||||
#if ! defined YYDESTRUCT_IS_DECLARED
|
#if ! defined YYDESTRUCT_IS_DECLARED
|
||||||
@ -505,7 +508,7 @@ YYDESTRUCT_DECL()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#line 509 "btyacc_destroy2.tab.c"
|
#line 512 "btyacc_destroy2.tab.c"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#define YYDESTRUCT_IS_DECLARED 1
|
#define YYDESTRUCT_IS_DECLARED 1
|
||||||
@ -648,7 +651,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -715,10 +718,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -829,7 +832,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1039,7 +1042,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1068,7 +1071,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1084,7 +1087,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1170,10 +1173,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1228,7 +1231,7 @@ case 9:
|
|||||||
#line 86 "btyacc_destroy2.y"
|
#line 86 "btyacc_destroy2.y"
|
||||||
{ yyval.nlist = yystack.l_mark[-5].nlist; }
|
{ yyval.nlist = yystack.l_mark[-5].nlist; }
|
||||||
break;
|
break;
|
||||||
#line 1232 "btyacc_destroy2.tab.c"
|
#line 1235 "btyacc_destroy2.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1283,12 +1286,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -202,7 +202,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define INTEGER 260
|
#define INTEGER 260
|
||||||
#define NAME 261
|
#define NAME 261
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT destroy3_lhs[] = { -1,
|
static const YYINT destroy3_lhs[] = { -1,
|
||||||
0, 0, 2, 2, 3, 3, 4, 4, 1,
|
0, 0, 2, 2, 3, 3, 4, 4, 1,
|
||||||
};
|
};
|
||||||
@ -357,13 +357,16 @@ static const char *const destroy3_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -376,17 +379,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -485,7 +488,7 @@ static YYINT *yylexemes = 0;
|
|||||||
|
|
||||||
extern int YYLEX_DECL();
|
extern int YYLEX_DECL();
|
||||||
extern void YYERROR_DECL();
|
extern void YYERROR_DECL();
|
||||||
#line 489 "btyacc_destroy3.tab.c"
|
#line 492 "btyacc_destroy3.tab.c"
|
||||||
|
|
||||||
/* Release memory associated with symbol. */
|
/* Release memory associated with symbol. */
|
||||||
#if ! defined YYDESTRUCT_IS_DECLARED
|
#if ! defined YYDESTRUCT_IS_DECLARED
|
||||||
@ -505,7 +508,7 @@ YYDESTRUCT_DECL()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#line 509 "btyacc_destroy3.tab.c"
|
#line 512 "btyacc_destroy3.tab.c"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#define YYDESTRUCT_IS_DECLARED 1
|
#define YYDESTRUCT_IS_DECLARED 1
|
||||||
@ -648,7 +651,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -715,10 +718,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -829,7 +832,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1039,7 +1042,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1068,7 +1071,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1084,7 +1087,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1170,10 +1173,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1228,7 +1231,7 @@ case 9:
|
|||||||
#line 89 "btyacc_destroy3.y"
|
#line 89 "btyacc_destroy3.y"
|
||||||
{ yyval.nlist = yystack.l_mark[-5].nlist; }
|
{ yyval.nlist = yystack.l_mark[-5].nlist; }
|
||||||
break;
|
break;
|
||||||
#line 1232 "btyacc_destroy3.tab.c"
|
#line 1235 "btyacc_destroy3.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1283,12 +1286,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -170,7 +170,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define LETTER 258
|
#define LETTER 258
|
||||||
#define UMINUS 259
|
#define UMINUS 259
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT calc_lhs[] = { -1,
|
static const YYINT calc_lhs[] = { -1,
|
||||||
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
|
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
|
||||||
2, 2, 2, 2, 2, 2, 3, 3,
|
2, 2, 2, 2, 2, 2, 3, 3,
|
||||||
@ -338,13 +338,16 @@ static const char *const calc_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -357,17 +360,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -504,7 +507,7 @@ yylex(void)
|
|||||||
}
|
}
|
||||||
return( c );
|
return( c );
|
||||||
}
|
}
|
||||||
#line 508 "calc.tab.c"
|
#line 511 "calc.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -643,7 +646,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -710,10 +713,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -824,7 +827,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1034,7 +1037,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1063,7 +1066,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1079,7 +1082,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1165,10 +1168,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1234,7 +1237,7 @@ case 18:
|
|||||||
#line 63 "calc.y"
|
#line 63 "calc.y"
|
||||||
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
|
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
|
||||||
break;
|
break;
|
||||||
#line 1238 "calc.tab.c"
|
#line 1241 "calc.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1289,12 +1292,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -195,7 +195,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define CONST 259
|
#define CONST 259
|
||||||
#define UMINUS 260
|
#define UMINUS 260
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT calc1_lhs[] = { -1,
|
static const YYINT calc1_lhs[] = { -1,
|
||||||
3, 3, 0, 0, 0, 0, 0, 1, 1, 1,
|
3, 3, 0, 0, 0, 0, 0, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
|
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
|
||||||
@ -393,13 +393,16 @@ static const char *const calc1_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -412,17 +415,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -648,7 +651,7 @@ vdiv(double a, double b, INTERVAL v)
|
|||||||
{
|
{
|
||||||
return (hilo(a / v.hi, a / v.lo, b / v.hi, b / v.lo));
|
return (hilo(a / v.hi, a / v.lo, b / v.hi, b / v.lo));
|
||||||
}
|
}
|
||||||
#line 652 "calc1.tab.c"
|
#line 655 "calc1.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -787,7 +790,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -854,10 +857,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -968,7 +971,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1178,7 +1181,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1207,7 +1210,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1223,7 +1226,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1309,10 +1312,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1481,7 +1484,7 @@ case 28:
|
|||||||
yyval.vval = yystack.l_mark[-1].vval;
|
yyval.vval = yystack.l_mark[-1].vval;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#line 1485 "calc1.tab.c"
|
#line 1488 "calc1.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1536,12 +1539,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -172,7 +172,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define LETTER 258
|
#define LETTER 258
|
||||||
#define UMINUS 259
|
#define UMINUS 259
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT calc2_lhs[] = { -1,
|
static const YYINT calc2_lhs[] = { -1,
|
||||||
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
|
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
|
||||||
2, 2, 2, 2, 2, 2, 3, 3,
|
2, 2, 2, 2, 2, 2, 3, 3,
|
||||||
@ -340,13 +340,16 @@ static const char *const calc2_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -359,17 +362,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -517,7 +520,7 @@ YYLEX_DECL()
|
|||||||
}
|
}
|
||||||
return( c );
|
return( c );
|
||||||
}
|
}
|
||||||
#line 521 "calc2.tab.c"
|
#line 524 "calc2.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -656,7 +659,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -723,10 +726,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -837,7 +840,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1047,7 +1050,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1076,7 +1079,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1092,7 +1095,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1178,10 +1181,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1247,7 +1250,7 @@ case 18:
|
|||||||
#line 70 "calc2.y"
|
#line 70 "calc2.y"
|
||||||
{ yyval = (*base) * yystack.l_mark[-1] + yystack.l_mark[0]; }
|
{ yyval = (*base) * yystack.l_mark[-1] + yystack.l_mark[0]; }
|
||||||
break;
|
break;
|
||||||
#line 1251 "calc2.tab.c"
|
#line 1254 "calc2.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1302,12 +1305,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -177,7 +177,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define LETTER 258
|
#define LETTER 258
|
||||||
#define UMINUS 259
|
#define UMINUS 259
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT calc3_lhs[] = { -1,
|
static const YYINT calc3_lhs[] = { -1,
|
||||||
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
|
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
|
||||||
2, 2, 2, 2, 2, 2, 3, 3,
|
2, 2, 2, 2, 2, 2, 3, 3,
|
||||||
@ -345,8 +345,9 @@ static const char *const calc3_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
#ifndef YYLLOC_DEFAULT
|
#ifndef YYLLOC_DEFAULT
|
||||||
@ -355,17 +356,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -472,7 +473,7 @@ YYLEX_DECL()
|
|||||||
}
|
}
|
||||||
return( c );
|
return( c );
|
||||||
}
|
}
|
||||||
#line 476 "calc3.tab.c"
|
#line 477 "calc3.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -609,6 +610,8 @@ YYPARSE_DECL()
|
|||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -661,7 +664,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -737,10 +740,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -851,7 +854,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1061,7 +1064,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1090,7 +1093,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1106,7 +1109,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1192,10 +1195,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1261,7 +1264,7 @@ case 18:
|
|||||||
#line 73 "calc3.y"
|
#line 73 "calc3.y"
|
||||||
{ yyval = (*base) * yystack.l_mark[-1] + yystack.l_mark[0]; }
|
{ yyval = (*base) * yystack.l_mark[-1] + yystack.l_mark[0]; }
|
||||||
break;
|
break;
|
||||||
#line 1265 "calc3.tab.c"
|
#line 1268 "calc3.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1316,12 +1319,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
485
contrib/byacc/test/btyacc/calc_code_all.output
Normal file
485
contrib/byacc/test/btyacc/calc_code_all.output
Normal file
@ -0,0 +1,485 @@
|
|||||||
|
0 $accept : list $end
|
||||||
|
|
||||||
|
1 list :
|
||||||
|
2 | list stat '\n'
|
||||||
|
3 | list error '\n'
|
||||||
|
|
||||||
|
4 stat : expr
|
||||||
|
5 | LETTER '=' expr
|
||||||
|
|
||||||
|
6 expr : '(' expr ')'
|
||||||
|
7 | expr '+' expr
|
||||||
|
8 | expr '-' expr
|
||||||
|
9 | expr '*' expr
|
||||||
|
10 | expr '/' expr
|
||||||
|
11 | expr '%' expr
|
||||||
|
12 | expr '&' expr
|
||||||
|
13 | expr '|' expr
|
||||||
|
14 | '-' expr
|
||||||
|
15 | LETTER
|
||||||
|
16 | number
|
||||||
|
|
||||||
|
17 number : DIGIT
|
||||||
|
18 | number DIGIT
|
||||||
|
|
||||||
|
state 0
|
||||||
|
$accept : . list $end (0)
|
||||||
|
list : . (1)
|
||||||
|
|
||||||
|
. reduce 1
|
||||||
|
|
||||||
|
list goto 1
|
||||||
|
|
||||||
|
|
||||||
|
state 1
|
||||||
|
$accept : list . $end (0)
|
||||||
|
list : list . stat '\n' (2)
|
||||||
|
list : list . error '\n' (3)
|
||||||
|
|
||||||
|
$end accept
|
||||||
|
error shift 2
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 4
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
stat goto 7
|
||||||
|
expr goto 8
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 2
|
||||||
|
list : list error . '\n' (3)
|
||||||
|
|
||||||
|
'\n' shift 10
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 3
|
||||||
|
number : DIGIT . (17)
|
||||||
|
|
||||||
|
. reduce 17
|
||||||
|
|
||||||
|
|
||||||
|
state 4
|
||||||
|
stat : LETTER . '=' expr (5)
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
'=' shift 11
|
||||||
|
'|' reduce 15
|
||||||
|
'&' reduce 15
|
||||||
|
'+' reduce 15
|
||||||
|
'-' reduce 15
|
||||||
|
'*' reduce 15
|
||||||
|
'/' reduce 15
|
||||||
|
'%' reduce 15
|
||||||
|
'\n' reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 5
|
||||||
|
expr : '-' . expr (14)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 13
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 6
|
||||||
|
expr : '(' . expr ')' (6)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 14
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 7
|
||||||
|
list : list stat . '\n' (2)
|
||||||
|
|
||||||
|
'\n' shift 15
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 8
|
||||||
|
stat : expr . (4)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 4
|
||||||
|
|
||||||
|
|
||||||
|
state 9
|
||||||
|
expr : number . (16)
|
||||||
|
number : number . DIGIT (18)
|
||||||
|
|
||||||
|
DIGIT shift 23
|
||||||
|
'|' reduce 16
|
||||||
|
'&' reduce 16
|
||||||
|
'+' reduce 16
|
||||||
|
'-' reduce 16
|
||||||
|
'*' reduce 16
|
||||||
|
'/' reduce 16
|
||||||
|
'%' reduce 16
|
||||||
|
'\n' reduce 16
|
||||||
|
')' reduce 16
|
||||||
|
|
||||||
|
|
||||||
|
state 10
|
||||||
|
list : list error '\n' . (3)
|
||||||
|
|
||||||
|
. reduce 3
|
||||||
|
|
||||||
|
|
||||||
|
state 11
|
||||||
|
stat : LETTER '=' . expr (5)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 24
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 12
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
. reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 13
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : '-' expr . (14)
|
||||||
|
|
||||||
|
. reduce 14
|
||||||
|
|
||||||
|
|
||||||
|
state 14
|
||||||
|
expr : '(' expr . ')' (6)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
')' shift 25
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 15
|
||||||
|
list : list stat '\n' . (2)
|
||||||
|
|
||||||
|
. reduce 2
|
||||||
|
|
||||||
|
|
||||||
|
state 16
|
||||||
|
expr : expr '|' . expr (13)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 26
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 17
|
||||||
|
expr : expr '&' . expr (12)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 27
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 18
|
||||||
|
expr : expr '+' . expr (7)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 28
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 19
|
||||||
|
expr : expr '-' . expr (8)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 29
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 20
|
||||||
|
expr : expr '*' . expr (9)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 30
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 21
|
||||||
|
expr : expr '/' . expr (10)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 31
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 22
|
||||||
|
expr : expr '%' . expr (11)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 32
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 23
|
||||||
|
number : number DIGIT . (18)
|
||||||
|
|
||||||
|
. reduce 18
|
||||||
|
|
||||||
|
|
||||||
|
state 24
|
||||||
|
stat : LETTER '=' expr . (5)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 5
|
||||||
|
|
||||||
|
|
||||||
|
state 25
|
||||||
|
expr : '(' expr ')' . (6)
|
||||||
|
|
||||||
|
. reduce 6
|
||||||
|
|
||||||
|
|
||||||
|
state 26
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : expr '|' expr . (13)
|
||||||
|
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 13
|
||||||
|
'\n' reduce 13
|
||||||
|
')' reduce 13
|
||||||
|
|
||||||
|
|
||||||
|
state 27
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr '&' expr . (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 12
|
||||||
|
'&' reduce 12
|
||||||
|
'\n' reduce 12
|
||||||
|
')' reduce 12
|
||||||
|
|
||||||
|
|
||||||
|
state 28
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr '+' expr . (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 7
|
||||||
|
'&' reduce 7
|
||||||
|
'+' reduce 7
|
||||||
|
'-' reduce 7
|
||||||
|
'\n' reduce 7
|
||||||
|
')' reduce 7
|
||||||
|
|
||||||
|
|
||||||
|
state 29
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr '-' expr . (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 8
|
||||||
|
'&' reduce 8
|
||||||
|
'+' reduce 8
|
||||||
|
'-' reduce 8
|
||||||
|
'\n' reduce 8
|
||||||
|
')' reduce 8
|
||||||
|
|
||||||
|
|
||||||
|
state 30
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr '*' expr . (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 9
|
||||||
|
|
||||||
|
|
||||||
|
state 31
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr '/' expr . (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 10
|
||||||
|
|
||||||
|
|
||||||
|
state 32
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr '%' expr . (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 11
|
||||||
|
|
||||||
|
|
||||||
|
16 terminals, 5 nonterminals
|
||||||
|
19 grammar rules, 33 states
|
||||||
|
|
||||||
|
grammar parser grammar
|
||||||
|
symbol# value# symbol
|
||||||
|
0 0 $end
|
||||||
|
1 256 error
|
||||||
|
2 257 DIGIT
|
||||||
|
3 258 LETTER
|
||||||
|
4 124 '|'
|
||||||
|
5 38 '&'
|
||||||
|
6 43 '+'
|
||||||
|
7 45 '-'
|
||||||
|
8 42 '*'
|
||||||
|
9 47 '/'
|
||||||
|
10 37 '%'
|
||||||
|
11 259 UMINUS
|
||||||
|
12 10 '\n'
|
||||||
|
13 61 '='
|
||||||
|
14 40 '('
|
||||||
|
15 41 ')'
|
||||||
|
16 260 $accept
|
||||||
|
17 261 list
|
||||||
|
18 262 stat
|
||||||
|
19 263 expr
|
||||||
|
20 264 number
|
1502
contrib/byacc/test/btyacc/calc_code_all.tab.c
Normal file
1502
contrib/byacc/test/btyacc/calc_code_all.tab.c
Normal file
File diff suppressed because it is too large
Load Diff
18
contrib/byacc/test/btyacc/calc_code_all.tab.h
Normal file
18
contrib/byacc/test/btyacc/calc_code_all.tab.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#ifndef _calc_code_all__defines_h_
|
||||||
|
#define _calc_code_all__defines_h_
|
||||||
|
|
||||||
|
/* %code "requires" block start */
|
||||||
|
#line 3 "calc_code_all.y"
|
||||||
|
/* CODE-REQUIRES */
|
||||||
|
/* %code "requires" block end */
|
||||||
|
#define DIGIT 257
|
||||||
|
#define LETTER 258
|
||||||
|
#define UMINUS 259
|
||||||
|
/* %code "provides" block start */
|
||||||
|
#line 4 "calc_code_all.y"
|
||||||
|
/* CODE-PROVIDES */
|
||||||
|
#line 6 "calc_code_all.y"
|
||||||
|
/* CODE-PROVIDES2 */
|
||||||
|
/* %code "provides" block end */
|
||||||
|
|
||||||
|
#endif /* _calc_code_all__defines_h_ */
|
485
contrib/byacc/test/btyacc/calc_code_default.output
Normal file
485
contrib/byacc/test/btyacc/calc_code_default.output
Normal file
@ -0,0 +1,485 @@
|
|||||||
|
0 $accept : list $end
|
||||||
|
|
||||||
|
1 list :
|
||||||
|
2 | list stat '\n'
|
||||||
|
3 | list error '\n'
|
||||||
|
|
||||||
|
4 stat : expr
|
||||||
|
5 | LETTER '=' expr
|
||||||
|
|
||||||
|
6 expr : '(' expr ')'
|
||||||
|
7 | expr '+' expr
|
||||||
|
8 | expr '-' expr
|
||||||
|
9 | expr '*' expr
|
||||||
|
10 | expr '/' expr
|
||||||
|
11 | expr '%' expr
|
||||||
|
12 | expr '&' expr
|
||||||
|
13 | expr '|' expr
|
||||||
|
14 | '-' expr
|
||||||
|
15 | LETTER
|
||||||
|
16 | number
|
||||||
|
|
||||||
|
17 number : DIGIT
|
||||||
|
18 | number DIGIT
|
||||||
|
|
||||||
|
state 0
|
||||||
|
$accept : . list $end (0)
|
||||||
|
list : . (1)
|
||||||
|
|
||||||
|
. reduce 1
|
||||||
|
|
||||||
|
list goto 1
|
||||||
|
|
||||||
|
|
||||||
|
state 1
|
||||||
|
$accept : list . $end (0)
|
||||||
|
list : list . stat '\n' (2)
|
||||||
|
list : list . error '\n' (3)
|
||||||
|
|
||||||
|
$end accept
|
||||||
|
error shift 2
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 4
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
stat goto 7
|
||||||
|
expr goto 8
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 2
|
||||||
|
list : list error . '\n' (3)
|
||||||
|
|
||||||
|
'\n' shift 10
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 3
|
||||||
|
number : DIGIT . (17)
|
||||||
|
|
||||||
|
. reduce 17
|
||||||
|
|
||||||
|
|
||||||
|
state 4
|
||||||
|
stat : LETTER . '=' expr (5)
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
'=' shift 11
|
||||||
|
'|' reduce 15
|
||||||
|
'&' reduce 15
|
||||||
|
'+' reduce 15
|
||||||
|
'-' reduce 15
|
||||||
|
'*' reduce 15
|
||||||
|
'/' reduce 15
|
||||||
|
'%' reduce 15
|
||||||
|
'\n' reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 5
|
||||||
|
expr : '-' . expr (14)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 13
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 6
|
||||||
|
expr : '(' . expr ')' (6)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 14
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 7
|
||||||
|
list : list stat . '\n' (2)
|
||||||
|
|
||||||
|
'\n' shift 15
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 8
|
||||||
|
stat : expr . (4)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 4
|
||||||
|
|
||||||
|
|
||||||
|
state 9
|
||||||
|
expr : number . (16)
|
||||||
|
number : number . DIGIT (18)
|
||||||
|
|
||||||
|
DIGIT shift 23
|
||||||
|
'|' reduce 16
|
||||||
|
'&' reduce 16
|
||||||
|
'+' reduce 16
|
||||||
|
'-' reduce 16
|
||||||
|
'*' reduce 16
|
||||||
|
'/' reduce 16
|
||||||
|
'%' reduce 16
|
||||||
|
'\n' reduce 16
|
||||||
|
')' reduce 16
|
||||||
|
|
||||||
|
|
||||||
|
state 10
|
||||||
|
list : list error '\n' . (3)
|
||||||
|
|
||||||
|
. reduce 3
|
||||||
|
|
||||||
|
|
||||||
|
state 11
|
||||||
|
stat : LETTER '=' . expr (5)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 24
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 12
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
. reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 13
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : '-' expr . (14)
|
||||||
|
|
||||||
|
. reduce 14
|
||||||
|
|
||||||
|
|
||||||
|
state 14
|
||||||
|
expr : '(' expr . ')' (6)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
')' shift 25
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 15
|
||||||
|
list : list stat '\n' . (2)
|
||||||
|
|
||||||
|
. reduce 2
|
||||||
|
|
||||||
|
|
||||||
|
state 16
|
||||||
|
expr : expr '|' . expr (13)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 26
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 17
|
||||||
|
expr : expr '&' . expr (12)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 27
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 18
|
||||||
|
expr : expr '+' . expr (7)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 28
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 19
|
||||||
|
expr : expr '-' . expr (8)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 29
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 20
|
||||||
|
expr : expr '*' . expr (9)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 30
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 21
|
||||||
|
expr : expr '/' . expr (10)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 31
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 22
|
||||||
|
expr : expr '%' . expr (11)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 32
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 23
|
||||||
|
number : number DIGIT . (18)
|
||||||
|
|
||||||
|
. reduce 18
|
||||||
|
|
||||||
|
|
||||||
|
state 24
|
||||||
|
stat : LETTER '=' expr . (5)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 5
|
||||||
|
|
||||||
|
|
||||||
|
state 25
|
||||||
|
expr : '(' expr ')' . (6)
|
||||||
|
|
||||||
|
. reduce 6
|
||||||
|
|
||||||
|
|
||||||
|
state 26
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : expr '|' expr . (13)
|
||||||
|
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 13
|
||||||
|
'\n' reduce 13
|
||||||
|
')' reduce 13
|
||||||
|
|
||||||
|
|
||||||
|
state 27
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr '&' expr . (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 12
|
||||||
|
'&' reduce 12
|
||||||
|
'\n' reduce 12
|
||||||
|
')' reduce 12
|
||||||
|
|
||||||
|
|
||||||
|
state 28
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr '+' expr . (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 7
|
||||||
|
'&' reduce 7
|
||||||
|
'+' reduce 7
|
||||||
|
'-' reduce 7
|
||||||
|
'\n' reduce 7
|
||||||
|
')' reduce 7
|
||||||
|
|
||||||
|
|
||||||
|
state 29
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr '-' expr . (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 8
|
||||||
|
'&' reduce 8
|
||||||
|
'+' reduce 8
|
||||||
|
'-' reduce 8
|
||||||
|
'\n' reduce 8
|
||||||
|
')' reduce 8
|
||||||
|
|
||||||
|
|
||||||
|
state 30
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr '*' expr . (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 9
|
||||||
|
|
||||||
|
|
||||||
|
state 31
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr '/' expr . (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 10
|
||||||
|
|
||||||
|
|
||||||
|
state 32
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr '%' expr . (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 11
|
||||||
|
|
||||||
|
|
||||||
|
16 terminals, 5 nonterminals
|
||||||
|
19 grammar rules, 33 states
|
||||||
|
|
||||||
|
grammar parser grammar
|
||||||
|
symbol# value# symbol
|
||||||
|
0 0 $end
|
||||||
|
1 256 error
|
||||||
|
2 257 DIGIT
|
||||||
|
3 258 LETTER
|
||||||
|
4 124 '|'
|
||||||
|
5 38 '&'
|
||||||
|
6 43 '+'
|
||||||
|
7 45 '-'
|
||||||
|
8 42 '*'
|
||||||
|
9 47 '/'
|
||||||
|
10 37 '%'
|
||||||
|
11 259 UMINUS
|
||||||
|
12 10 '\n'
|
||||||
|
13 61 '='
|
||||||
|
14 40 '('
|
||||||
|
15 41 ')'
|
||||||
|
16 260 $accept
|
||||||
|
17 261 list
|
||||||
|
18 262 stat
|
||||||
|
19 263 expr
|
||||||
|
20 264 number
|
1482
contrib/byacc/test/btyacc/calc_code_default.tab.c
Normal file
1482
contrib/byacc/test/btyacc/calc_code_default.tab.c
Normal file
File diff suppressed because it is too large
Load Diff
8
contrib/byacc/test/btyacc/calc_code_default.tab.h
Normal file
8
contrib/byacc/test/btyacc/calc_code_default.tab.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#ifndef _calc_code_default__defines_h_
|
||||||
|
#define _calc_code_default__defines_h_
|
||||||
|
|
||||||
|
#define DIGIT 257
|
||||||
|
#define LETTER 258
|
||||||
|
#define UMINUS 259
|
||||||
|
|
||||||
|
#endif /* _calc_code_default__defines_h_ */
|
485
contrib/byacc/test/btyacc/calc_code_imports.output
Normal file
485
contrib/byacc/test/btyacc/calc_code_imports.output
Normal file
@ -0,0 +1,485 @@
|
|||||||
|
0 $accept : list $end
|
||||||
|
|
||||||
|
1 list :
|
||||||
|
2 | list stat '\n'
|
||||||
|
3 | list error '\n'
|
||||||
|
|
||||||
|
4 stat : expr
|
||||||
|
5 | LETTER '=' expr
|
||||||
|
|
||||||
|
6 expr : '(' expr ')'
|
||||||
|
7 | expr '+' expr
|
||||||
|
8 | expr '-' expr
|
||||||
|
9 | expr '*' expr
|
||||||
|
10 | expr '/' expr
|
||||||
|
11 | expr '%' expr
|
||||||
|
12 | expr '&' expr
|
||||||
|
13 | expr '|' expr
|
||||||
|
14 | '-' expr
|
||||||
|
15 | LETTER
|
||||||
|
16 | number
|
||||||
|
|
||||||
|
17 number : DIGIT
|
||||||
|
18 | number DIGIT
|
||||||
|
|
||||||
|
state 0
|
||||||
|
$accept : . list $end (0)
|
||||||
|
list : . (1)
|
||||||
|
|
||||||
|
. reduce 1
|
||||||
|
|
||||||
|
list goto 1
|
||||||
|
|
||||||
|
|
||||||
|
state 1
|
||||||
|
$accept : list . $end (0)
|
||||||
|
list : list . stat '\n' (2)
|
||||||
|
list : list . error '\n' (3)
|
||||||
|
|
||||||
|
$end accept
|
||||||
|
error shift 2
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 4
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
stat goto 7
|
||||||
|
expr goto 8
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 2
|
||||||
|
list : list error . '\n' (3)
|
||||||
|
|
||||||
|
'\n' shift 10
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 3
|
||||||
|
number : DIGIT . (17)
|
||||||
|
|
||||||
|
. reduce 17
|
||||||
|
|
||||||
|
|
||||||
|
state 4
|
||||||
|
stat : LETTER . '=' expr (5)
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
'=' shift 11
|
||||||
|
'|' reduce 15
|
||||||
|
'&' reduce 15
|
||||||
|
'+' reduce 15
|
||||||
|
'-' reduce 15
|
||||||
|
'*' reduce 15
|
||||||
|
'/' reduce 15
|
||||||
|
'%' reduce 15
|
||||||
|
'\n' reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 5
|
||||||
|
expr : '-' . expr (14)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 13
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 6
|
||||||
|
expr : '(' . expr ')' (6)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 14
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 7
|
||||||
|
list : list stat . '\n' (2)
|
||||||
|
|
||||||
|
'\n' shift 15
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 8
|
||||||
|
stat : expr . (4)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 4
|
||||||
|
|
||||||
|
|
||||||
|
state 9
|
||||||
|
expr : number . (16)
|
||||||
|
number : number . DIGIT (18)
|
||||||
|
|
||||||
|
DIGIT shift 23
|
||||||
|
'|' reduce 16
|
||||||
|
'&' reduce 16
|
||||||
|
'+' reduce 16
|
||||||
|
'-' reduce 16
|
||||||
|
'*' reduce 16
|
||||||
|
'/' reduce 16
|
||||||
|
'%' reduce 16
|
||||||
|
'\n' reduce 16
|
||||||
|
')' reduce 16
|
||||||
|
|
||||||
|
|
||||||
|
state 10
|
||||||
|
list : list error '\n' . (3)
|
||||||
|
|
||||||
|
. reduce 3
|
||||||
|
|
||||||
|
|
||||||
|
state 11
|
||||||
|
stat : LETTER '=' . expr (5)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 24
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 12
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
. reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 13
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : '-' expr . (14)
|
||||||
|
|
||||||
|
. reduce 14
|
||||||
|
|
||||||
|
|
||||||
|
state 14
|
||||||
|
expr : '(' expr . ')' (6)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
')' shift 25
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 15
|
||||||
|
list : list stat '\n' . (2)
|
||||||
|
|
||||||
|
. reduce 2
|
||||||
|
|
||||||
|
|
||||||
|
state 16
|
||||||
|
expr : expr '|' . expr (13)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 26
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 17
|
||||||
|
expr : expr '&' . expr (12)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 27
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 18
|
||||||
|
expr : expr '+' . expr (7)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 28
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 19
|
||||||
|
expr : expr '-' . expr (8)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 29
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 20
|
||||||
|
expr : expr '*' . expr (9)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 30
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 21
|
||||||
|
expr : expr '/' . expr (10)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 31
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 22
|
||||||
|
expr : expr '%' . expr (11)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 32
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 23
|
||||||
|
number : number DIGIT . (18)
|
||||||
|
|
||||||
|
. reduce 18
|
||||||
|
|
||||||
|
|
||||||
|
state 24
|
||||||
|
stat : LETTER '=' expr . (5)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 5
|
||||||
|
|
||||||
|
|
||||||
|
state 25
|
||||||
|
expr : '(' expr ')' . (6)
|
||||||
|
|
||||||
|
. reduce 6
|
||||||
|
|
||||||
|
|
||||||
|
state 26
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : expr '|' expr . (13)
|
||||||
|
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 13
|
||||||
|
'\n' reduce 13
|
||||||
|
')' reduce 13
|
||||||
|
|
||||||
|
|
||||||
|
state 27
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr '&' expr . (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 12
|
||||||
|
'&' reduce 12
|
||||||
|
'\n' reduce 12
|
||||||
|
')' reduce 12
|
||||||
|
|
||||||
|
|
||||||
|
state 28
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr '+' expr . (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 7
|
||||||
|
'&' reduce 7
|
||||||
|
'+' reduce 7
|
||||||
|
'-' reduce 7
|
||||||
|
'\n' reduce 7
|
||||||
|
')' reduce 7
|
||||||
|
|
||||||
|
|
||||||
|
state 29
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr '-' expr . (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 8
|
||||||
|
'&' reduce 8
|
||||||
|
'+' reduce 8
|
||||||
|
'-' reduce 8
|
||||||
|
'\n' reduce 8
|
||||||
|
')' reduce 8
|
||||||
|
|
||||||
|
|
||||||
|
state 30
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr '*' expr . (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 9
|
||||||
|
|
||||||
|
|
||||||
|
state 31
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr '/' expr . (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 10
|
||||||
|
|
||||||
|
|
||||||
|
state 32
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr '%' expr . (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 11
|
||||||
|
|
||||||
|
|
||||||
|
16 terminals, 5 nonterminals
|
||||||
|
19 grammar rules, 33 states
|
||||||
|
|
||||||
|
grammar parser grammar
|
||||||
|
symbol# value# symbol
|
||||||
|
0 0 $end
|
||||||
|
1 256 error
|
||||||
|
2 257 DIGIT
|
||||||
|
3 258 LETTER
|
||||||
|
4 124 '|'
|
||||||
|
5 38 '&'
|
||||||
|
6 43 '+'
|
||||||
|
7 45 '-'
|
||||||
|
8 42 '*'
|
||||||
|
9 47 '/'
|
||||||
|
10 37 '%'
|
||||||
|
11 259 UMINUS
|
||||||
|
12 10 '\n'
|
||||||
|
13 61 '='
|
||||||
|
14 40 '('
|
||||||
|
15 41 ')'
|
||||||
|
16 260 $accept
|
||||||
|
17 261 list
|
||||||
|
18 262 stat
|
||||||
|
19 263 expr
|
||||||
|
20 264 number
|
1474
contrib/byacc/test/btyacc/calc_code_imports.tab.c
Normal file
1474
contrib/byacc/test/btyacc/calc_code_imports.tab.c
Normal file
File diff suppressed because it is too large
Load Diff
8
contrib/byacc/test/btyacc/calc_code_imports.tab.h
Normal file
8
contrib/byacc/test/btyacc/calc_code_imports.tab.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#ifndef _calc_code_imports__defines_h_
|
||||||
|
#define _calc_code_imports__defines_h_
|
||||||
|
|
||||||
|
#define DIGIT 257
|
||||||
|
#define LETTER 258
|
||||||
|
#define UMINUS 259
|
||||||
|
|
||||||
|
#endif /* _calc_code_imports__defines_h_ */
|
0
contrib/byacc/test/btyacc/calc_code_provides.error
Normal file
0
contrib/byacc/test/btyacc/calc_code_provides.error
Normal file
485
contrib/byacc/test/btyacc/calc_code_provides.output
Normal file
485
contrib/byacc/test/btyacc/calc_code_provides.output
Normal file
@ -0,0 +1,485 @@
|
|||||||
|
0 $accept : list $end
|
||||||
|
|
||||||
|
1 list :
|
||||||
|
2 | list stat '\n'
|
||||||
|
3 | list error '\n'
|
||||||
|
|
||||||
|
4 stat : expr
|
||||||
|
5 | LETTER '=' expr
|
||||||
|
|
||||||
|
6 expr : '(' expr ')'
|
||||||
|
7 | expr '+' expr
|
||||||
|
8 | expr '-' expr
|
||||||
|
9 | expr '*' expr
|
||||||
|
10 | expr '/' expr
|
||||||
|
11 | expr '%' expr
|
||||||
|
12 | expr '&' expr
|
||||||
|
13 | expr '|' expr
|
||||||
|
14 | '-' expr
|
||||||
|
15 | LETTER
|
||||||
|
16 | number
|
||||||
|
|
||||||
|
17 number : DIGIT
|
||||||
|
18 | number DIGIT
|
||||||
|
|
||||||
|
state 0
|
||||||
|
$accept : . list $end (0)
|
||||||
|
list : . (1)
|
||||||
|
|
||||||
|
. reduce 1
|
||||||
|
|
||||||
|
list goto 1
|
||||||
|
|
||||||
|
|
||||||
|
state 1
|
||||||
|
$accept : list . $end (0)
|
||||||
|
list : list . stat '\n' (2)
|
||||||
|
list : list . error '\n' (3)
|
||||||
|
|
||||||
|
$end accept
|
||||||
|
error shift 2
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 4
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
stat goto 7
|
||||||
|
expr goto 8
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 2
|
||||||
|
list : list error . '\n' (3)
|
||||||
|
|
||||||
|
'\n' shift 10
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 3
|
||||||
|
number : DIGIT . (17)
|
||||||
|
|
||||||
|
. reduce 17
|
||||||
|
|
||||||
|
|
||||||
|
state 4
|
||||||
|
stat : LETTER . '=' expr (5)
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
'=' shift 11
|
||||||
|
'|' reduce 15
|
||||||
|
'&' reduce 15
|
||||||
|
'+' reduce 15
|
||||||
|
'-' reduce 15
|
||||||
|
'*' reduce 15
|
||||||
|
'/' reduce 15
|
||||||
|
'%' reduce 15
|
||||||
|
'\n' reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 5
|
||||||
|
expr : '-' . expr (14)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 13
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 6
|
||||||
|
expr : '(' . expr ')' (6)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 14
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 7
|
||||||
|
list : list stat . '\n' (2)
|
||||||
|
|
||||||
|
'\n' shift 15
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 8
|
||||||
|
stat : expr . (4)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 4
|
||||||
|
|
||||||
|
|
||||||
|
state 9
|
||||||
|
expr : number . (16)
|
||||||
|
number : number . DIGIT (18)
|
||||||
|
|
||||||
|
DIGIT shift 23
|
||||||
|
'|' reduce 16
|
||||||
|
'&' reduce 16
|
||||||
|
'+' reduce 16
|
||||||
|
'-' reduce 16
|
||||||
|
'*' reduce 16
|
||||||
|
'/' reduce 16
|
||||||
|
'%' reduce 16
|
||||||
|
'\n' reduce 16
|
||||||
|
')' reduce 16
|
||||||
|
|
||||||
|
|
||||||
|
state 10
|
||||||
|
list : list error '\n' . (3)
|
||||||
|
|
||||||
|
. reduce 3
|
||||||
|
|
||||||
|
|
||||||
|
state 11
|
||||||
|
stat : LETTER '=' . expr (5)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 24
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 12
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
. reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 13
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : '-' expr . (14)
|
||||||
|
|
||||||
|
. reduce 14
|
||||||
|
|
||||||
|
|
||||||
|
state 14
|
||||||
|
expr : '(' expr . ')' (6)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
')' shift 25
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 15
|
||||||
|
list : list stat '\n' . (2)
|
||||||
|
|
||||||
|
. reduce 2
|
||||||
|
|
||||||
|
|
||||||
|
state 16
|
||||||
|
expr : expr '|' . expr (13)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 26
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 17
|
||||||
|
expr : expr '&' . expr (12)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 27
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 18
|
||||||
|
expr : expr '+' . expr (7)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 28
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 19
|
||||||
|
expr : expr '-' . expr (8)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 29
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 20
|
||||||
|
expr : expr '*' . expr (9)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 30
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 21
|
||||||
|
expr : expr '/' . expr (10)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 31
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 22
|
||||||
|
expr : expr '%' . expr (11)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 32
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 23
|
||||||
|
number : number DIGIT . (18)
|
||||||
|
|
||||||
|
. reduce 18
|
||||||
|
|
||||||
|
|
||||||
|
state 24
|
||||||
|
stat : LETTER '=' expr . (5)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 5
|
||||||
|
|
||||||
|
|
||||||
|
state 25
|
||||||
|
expr : '(' expr ')' . (6)
|
||||||
|
|
||||||
|
. reduce 6
|
||||||
|
|
||||||
|
|
||||||
|
state 26
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : expr '|' expr . (13)
|
||||||
|
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 13
|
||||||
|
'\n' reduce 13
|
||||||
|
')' reduce 13
|
||||||
|
|
||||||
|
|
||||||
|
state 27
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr '&' expr . (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 12
|
||||||
|
'&' reduce 12
|
||||||
|
'\n' reduce 12
|
||||||
|
')' reduce 12
|
||||||
|
|
||||||
|
|
||||||
|
state 28
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr '+' expr . (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 7
|
||||||
|
'&' reduce 7
|
||||||
|
'+' reduce 7
|
||||||
|
'-' reduce 7
|
||||||
|
'\n' reduce 7
|
||||||
|
')' reduce 7
|
||||||
|
|
||||||
|
|
||||||
|
state 29
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr '-' expr . (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 8
|
||||||
|
'&' reduce 8
|
||||||
|
'+' reduce 8
|
||||||
|
'-' reduce 8
|
||||||
|
'\n' reduce 8
|
||||||
|
')' reduce 8
|
||||||
|
|
||||||
|
|
||||||
|
state 30
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr '*' expr . (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 9
|
||||||
|
|
||||||
|
|
||||||
|
state 31
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr '/' expr . (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 10
|
||||||
|
|
||||||
|
|
||||||
|
state 32
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr '%' expr . (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 11
|
||||||
|
|
||||||
|
|
||||||
|
16 terminals, 5 nonterminals
|
||||||
|
19 grammar rules, 33 states
|
||||||
|
|
||||||
|
grammar parser grammar
|
||||||
|
symbol# value# symbol
|
||||||
|
0 0 $end
|
||||||
|
1 256 error
|
||||||
|
2 257 DIGIT
|
||||||
|
3 258 LETTER
|
||||||
|
4 124 '|'
|
||||||
|
5 38 '&'
|
||||||
|
6 43 '+'
|
||||||
|
7 45 '-'
|
||||||
|
8 42 '*'
|
||||||
|
9 47 '/'
|
||||||
|
10 37 '%'
|
||||||
|
11 259 UMINUS
|
||||||
|
12 10 '\n'
|
||||||
|
13 61 '='
|
||||||
|
14 40 '('
|
||||||
|
15 41 ')'
|
||||||
|
16 260 $accept
|
||||||
|
17 261 list
|
||||||
|
18 262 stat
|
||||||
|
19 263 expr
|
||||||
|
20 264 number
|
1482
contrib/byacc/test/btyacc/calc_code_provides.tab.c
Normal file
1482
contrib/byacc/test/btyacc/calc_code_provides.tab.c
Normal file
File diff suppressed because it is too large
Load Diff
14
contrib/byacc/test/btyacc/calc_code_provides.tab.h
Normal file
14
contrib/byacc/test/btyacc/calc_code_provides.tab.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#ifndef _calc_code_provides__defines_h_
|
||||||
|
#define _calc_code_provides__defines_h_
|
||||||
|
|
||||||
|
#define DIGIT 257
|
||||||
|
#define LETTER 258
|
||||||
|
#define UMINUS 259
|
||||||
|
/* %code "provides" block start */
|
||||||
|
#line 1 "calc_code_provides.y"
|
||||||
|
/* CODE-PROVIDES */
|
||||||
|
#line 2 "calc_code_provides.y"
|
||||||
|
/* CODE-PROVIDES2 */
|
||||||
|
/* %code "provides" block end */
|
||||||
|
|
||||||
|
#endif /* _calc_code_provides__defines_h_ */
|
0
contrib/byacc/test/btyacc/calc_code_requires.error
Normal file
0
contrib/byacc/test/btyacc/calc_code_requires.error
Normal file
485
contrib/byacc/test/btyacc/calc_code_requires.output
Normal file
485
contrib/byacc/test/btyacc/calc_code_requires.output
Normal file
@ -0,0 +1,485 @@
|
|||||||
|
0 $accept : list $end
|
||||||
|
|
||||||
|
1 list :
|
||||||
|
2 | list stat '\n'
|
||||||
|
3 | list error '\n'
|
||||||
|
|
||||||
|
4 stat : expr
|
||||||
|
5 | LETTER '=' expr
|
||||||
|
|
||||||
|
6 expr : '(' expr ')'
|
||||||
|
7 | expr '+' expr
|
||||||
|
8 | expr '-' expr
|
||||||
|
9 | expr '*' expr
|
||||||
|
10 | expr '/' expr
|
||||||
|
11 | expr '%' expr
|
||||||
|
12 | expr '&' expr
|
||||||
|
13 | expr '|' expr
|
||||||
|
14 | '-' expr
|
||||||
|
15 | LETTER
|
||||||
|
16 | number
|
||||||
|
|
||||||
|
17 number : DIGIT
|
||||||
|
18 | number DIGIT
|
||||||
|
|
||||||
|
state 0
|
||||||
|
$accept : . list $end (0)
|
||||||
|
list : . (1)
|
||||||
|
|
||||||
|
. reduce 1
|
||||||
|
|
||||||
|
list goto 1
|
||||||
|
|
||||||
|
|
||||||
|
state 1
|
||||||
|
$accept : list . $end (0)
|
||||||
|
list : list . stat '\n' (2)
|
||||||
|
list : list . error '\n' (3)
|
||||||
|
|
||||||
|
$end accept
|
||||||
|
error shift 2
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 4
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
stat goto 7
|
||||||
|
expr goto 8
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 2
|
||||||
|
list : list error . '\n' (3)
|
||||||
|
|
||||||
|
'\n' shift 10
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 3
|
||||||
|
number : DIGIT . (17)
|
||||||
|
|
||||||
|
. reduce 17
|
||||||
|
|
||||||
|
|
||||||
|
state 4
|
||||||
|
stat : LETTER . '=' expr (5)
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
'=' shift 11
|
||||||
|
'|' reduce 15
|
||||||
|
'&' reduce 15
|
||||||
|
'+' reduce 15
|
||||||
|
'-' reduce 15
|
||||||
|
'*' reduce 15
|
||||||
|
'/' reduce 15
|
||||||
|
'%' reduce 15
|
||||||
|
'\n' reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 5
|
||||||
|
expr : '-' . expr (14)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 13
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 6
|
||||||
|
expr : '(' . expr ')' (6)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 14
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 7
|
||||||
|
list : list stat . '\n' (2)
|
||||||
|
|
||||||
|
'\n' shift 15
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 8
|
||||||
|
stat : expr . (4)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 4
|
||||||
|
|
||||||
|
|
||||||
|
state 9
|
||||||
|
expr : number . (16)
|
||||||
|
number : number . DIGIT (18)
|
||||||
|
|
||||||
|
DIGIT shift 23
|
||||||
|
'|' reduce 16
|
||||||
|
'&' reduce 16
|
||||||
|
'+' reduce 16
|
||||||
|
'-' reduce 16
|
||||||
|
'*' reduce 16
|
||||||
|
'/' reduce 16
|
||||||
|
'%' reduce 16
|
||||||
|
'\n' reduce 16
|
||||||
|
')' reduce 16
|
||||||
|
|
||||||
|
|
||||||
|
state 10
|
||||||
|
list : list error '\n' . (3)
|
||||||
|
|
||||||
|
. reduce 3
|
||||||
|
|
||||||
|
|
||||||
|
state 11
|
||||||
|
stat : LETTER '=' . expr (5)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 24
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 12
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
. reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 13
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : '-' expr . (14)
|
||||||
|
|
||||||
|
. reduce 14
|
||||||
|
|
||||||
|
|
||||||
|
state 14
|
||||||
|
expr : '(' expr . ')' (6)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
')' shift 25
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 15
|
||||||
|
list : list stat '\n' . (2)
|
||||||
|
|
||||||
|
. reduce 2
|
||||||
|
|
||||||
|
|
||||||
|
state 16
|
||||||
|
expr : expr '|' . expr (13)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 26
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 17
|
||||||
|
expr : expr '&' . expr (12)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 27
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 18
|
||||||
|
expr : expr '+' . expr (7)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 28
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 19
|
||||||
|
expr : expr '-' . expr (8)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 29
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 20
|
||||||
|
expr : expr '*' . expr (9)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 30
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 21
|
||||||
|
expr : expr '/' . expr (10)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 31
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 22
|
||||||
|
expr : expr '%' . expr (11)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 32
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 23
|
||||||
|
number : number DIGIT . (18)
|
||||||
|
|
||||||
|
. reduce 18
|
||||||
|
|
||||||
|
|
||||||
|
state 24
|
||||||
|
stat : LETTER '=' expr . (5)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 5
|
||||||
|
|
||||||
|
|
||||||
|
state 25
|
||||||
|
expr : '(' expr ')' . (6)
|
||||||
|
|
||||||
|
. reduce 6
|
||||||
|
|
||||||
|
|
||||||
|
state 26
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : expr '|' expr . (13)
|
||||||
|
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 13
|
||||||
|
'\n' reduce 13
|
||||||
|
')' reduce 13
|
||||||
|
|
||||||
|
|
||||||
|
state 27
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr '&' expr . (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 12
|
||||||
|
'&' reduce 12
|
||||||
|
'\n' reduce 12
|
||||||
|
')' reduce 12
|
||||||
|
|
||||||
|
|
||||||
|
state 28
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr '+' expr . (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 7
|
||||||
|
'&' reduce 7
|
||||||
|
'+' reduce 7
|
||||||
|
'-' reduce 7
|
||||||
|
'\n' reduce 7
|
||||||
|
')' reduce 7
|
||||||
|
|
||||||
|
|
||||||
|
state 29
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr '-' expr . (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 8
|
||||||
|
'&' reduce 8
|
||||||
|
'+' reduce 8
|
||||||
|
'-' reduce 8
|
||||||
|
'\n' reduce 8
|
||||||
|
')' reduce 8
|
||||||
|
|
||||||
|
|
||||||
|
state 30
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr '*' expr . (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 9
|
||||||
|
|
||||||
|
|
||||||
|
state 31
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr '/' expr . (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 10
|
||||||
|
|
||||||
|
|
||||||
|
state 32
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr '%' expr . (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 11
|
||||||
|
|
||||||
|
|
||||||
|
16 terminals, 5 nonterminals
|
||||||
|
19 grammar rules, 33 states
|
||||||
|
|
||||||
|
grammar parser grammar
|
||||||
|
symbol# value# symbol
|
||||||
|
0 0 $end
|
||||||
|
1 256 error
|
||||||
|
2 257 DIGIT
|
||||||
|
3 258 LETTER
|
||||||
|
4 124 '|'
|
||||||
|
5 38 '&'
|
||||||
|
6 43 '+'
|
||||||
|
7 45 '-'
|
||||||
|
8 42 '*'
|
||||||
|
9 47 '/'
|
||||||
|
10 37 '%'
|
||||||
|
11 259 UMINUS
|
||||||
|
12 10 '\n'
|
||||||
|
13 61 '='
|
||||||
|
14 40 '('
|
||||||
|
15 41 ')'
|
||||||
|
16 260 $accept
|
||||||
|
17 261 list
|
||||||
|
18 262 stat
|
||||||
|
19 263 expr
|
||||||
|
20 264 number
|
1482
contrib/byacc/test/btyacc/calc_code_requires.tab.c
Normal file
1482
contrib/byacc/test/btyacc/calc_code_requires.tab.c
Normal file
File diff suppressed because it is too large
Load Diff
14
contrib/byacc/test/btyacc/calc_code_requires.tab.h
Normal file
14
contrib/byacc/test/btyacc/calc_code_requires.tab.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#ifndef _calc_code_requires__defines_h_
|
||||||
|
#define _calc_code_requires__defines_h_
|
||||||
|
|
||||||
|
/* %code "requires" block start */
|
||||||
|
#line 1 "calc_code_requires.y"
|
||||||
|
/* CODE-REQUIRES */
|
||||||
|
#line 2 "calc_code_requires.y"
|
||||||
|
/* CODE-REQUIRES2 */
|
||||||
|
/* %code "requires" block end */
|
||||||
|
#define DIGIT 257
|
||||||
|
#define LETTER 258
|
||||||
|
#define UMINUS 259
|
||||||
|
|
||||||
|
#endif /* _calc_code_requires__defines_h_ */
|
0
contrib/byacc/test/btyacc/calc_code_top.error
Normal file
0
contrib/byacc/test/btyacc/calc_code_top.error
Normal file
485
contrib/byacc/test/btyacc/calc_code_top.output
Normal file
485
contrib/byacc/test/btyacc/calc_code_top.output
Normal file
@ -0,0 +1,485 @@
|
|||||||
|
0 $accept : list $end
|
||||||
|
|
||||||
|
1 list :
|
||||||
|
2 | list stat '\n'
|
||||||
|
3 | list error '\n'
|
||||||
|
|
||||||
|
4 stat : expr
|
||||||
|
5 | LETTER '=' expr
|
||||||
|
|
||||||
|
6 expr : '(' expr ')'
|
||||||
|
7 | expr '+' expr
|
||||||
|
8 | expr '-' expr
|
||||||
|
9 | expr '*' expr
|
||||||
|
10 | expr '/' expr
|
||||||
|
11 | expr '%' expr
|
||||||
|
12 | expr '&' expr
|
||||||
|
13 | expr '|' expr
|
||||||
|
14 | '-' expr
|
||||||
|
15 | LETTER
|
||||||
|
16 | number
|
||||||
|
|
||||||
|
17 number : DIGIT
|
||||||
|
18 | number DIGIT
|
||||||
|
|
||||||
|
state 0
|
||||||
|
$accept : . list $end (0)
|
||||||
|
list : . (1)
|
||||||
|
|
||||||
|
. reduce 1
|
||||||
|
|
||||||
|
list goto 1
|
||||||
|
|
||||||
|
|
||||||
|
state 1
|
||||||
|
$accept : list . $end (0)
|
||||||
|
list : list . stat '\n' (2)
|
||||||
|
list : list . error '\n' (3)
|
||||||
|
|
||||||
|
$end accept
|
||||||
|
error shift 2
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 4
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
stat goto 7
|
||||||
|
expr goto 8
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 2
|
||||||
|
list : list error . '\n' (3)
|
||||||
|
|
||||||
|
'\n' shift 10
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 3
|
||||||
|
number : DIGIT . (17)
|
||||||
|
|
||||||
|
. reduce 17
|
||||||
|
|
||||||
|
|
||||||
|
state 4
|
||||||
|
stat : LETTER . '=' expr (5)
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
'=' shift 11
|
||||||
|
'|' reduce 15
|
||||||
|
'&' reduce 15
|
||||||
|
'+' reduce 15
|
||||||
|
'-' reduce 15
|
||||||
|
'*' reduce 15
|
||||||
|
'/' reduce 15
|
||||||
|
'%' reduce 15
|
||||||
|
'\n' reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 5
|
||||||
|
expr : '-' . expr (14)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 13
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 6
|
||||||
|
expr : '(' . expr ')' (6)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 14
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 7
|
||||||
|
list : list stat . '\n' (2)
|
||||||
|
|
||||||
|
'\n' shift 15
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 8
|
||||||
|
stat : expr . (4)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 4
|
||||||
|
|
||||||
|
|
||||||
|
state 9
|
||||||
|
expr : number . (16)
|
||||||
|
number : number . DIGIT (18)
|
||||||
|
|
||||||
|
DIGIT shift 23
|
||||||
|
'|' reduce 16
|
||||||
|
'&' reduce 16
|
||||||
|
'+' reduce 16
|
||||||
|
'-' reduce 16
|
||||||
|
'*' reduce 16
|
||||||
|
'/' reduce 16
|
||||||
|
'%' reduce 16
|
||||||
|
'\n' reduce 16
|
||||||
|
')' reduce 16
|
||||||
|
|
||||||
|
|
||||||
|
state 10
|
||||||
|
list : list error '\n' . (3)
|
||||||
|
|
||||||
|
. reduce 3
|
||||||
|
|
||||||
|
|
||||||
|
state 11
|
||||||
|
stat : LETTER '=' . expr (5)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 24
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 12
|
||||||
|
expr : LETTER . (15)
|
||||||
|
|
||||||
|
. reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 13
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : '-' expr . (14)
|
||||||
|
|
||||||
|
. reduce 14
|
||||||
|
|
||||||
|
|
||||||
|
state 14
|
||||||
|
expr : '(' expr . ')' (6)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
')' shift 25
|
||||||
|
. error
|
||||||
|
|
||||||
|
|
||||||
|
state 15
|
||||||
|
list : list stat '\n' . (2)
|
||||||
|
|
||||||
|
. reduce 2
|
||||||
|
|
||||||
|
|
||||||
|
state 16
|
||||||
|
expr : expr '|' . expr (13)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 26
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 17
|
||||||
|
expr : expr '&' . expr (12)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 27
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 18
|
||||||
|
expr : expr '+' . expr (7)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 28
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 19
|
||||||
|
expr : expr '-' . expr (8)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 29
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 20
|
||||||
|
expr : expr '*' . expr (9)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 30
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 21
|
||||||
|
expr : expr '/' . expr (10)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 31
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 22
|
||||||
|
expr : expr '%' . expr (11)
|
||||||
|
|
||||||
|
DIGIT shift 3
|
||||||
|
LETTER shift 12
|
||||||
|
'-' shift 5
|
||||||
|
'(' shift 6
|
||||||
|
. error
|
||||||
|
|
||||||
|
expr goto 32
|
||||||
|
number goto 9
|
||||||
|
|
||||||
|
|
||||||
|
state 23
|
||||||
|
number : number DIGIT . (18)
|
||||||
|
|
||||||
|
. reduce 18
|
||||||
|
|
||||||
|
|
||||||
|
state 24
|
||||||
|
stat : LETTER '=' expr . (5)
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'|' shift 16
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'\n' reduce 5
|
||||||
|
|
||||||
|
|
||||||
|
state 25
|
||||||
|
expr : '(' expr ')' . (6)
|
||||||
|
|
||||||
|
. reduce 6
|
||||||
|
|
||||||
|
|
||||||
|
state 26
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
expr : expr '|' expr . (13)
|
||||||
|
|
||||||
|
'&' shift 17
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 13
|
||||||
|
'\n' reduce 13
|
||||||
|
')' reduce 13
|
||||||
|
|
||||||
|
|
||||||
|
state 27
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr '&' expr . (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'+' shift 18
|
||||||
|
'-' shift 19
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 12
|
||||||
|
'&' reduce 12
|
||||||
|
'\n' reduce 12
|
||||||
|
')' reduce 12
|
||||||
|
|
||||||
|
|
||||||
|
state 28
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr '+' expr . (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 7
|
||||||
|
'&' reduce 7
|
||||||
|
'+' reduce 7
|
||||||
|
'-' reduce 7
|
||||||
|
'\n' reduce 7
|
||||||
|
')' reduce 7
|
||||||
|
|
||||||
|
|
||||||
|
state 29
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr '-' expr . (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
'*' shift 20
|
||||||
|
'/' shift 21
|
||||||
|
'%' shift 22
|
||||||
|
'|' reduce 8
|
||||||
|
'&' reduce 8
|
||||||
|
'+' reduce 8
|
||||||
|
'-' reduce 8
|
||||||
|
'\n' reduce 8
|
||||||
|
')' reduce 8
|
||||||
|
|
||||||
|
|
||||||
|
state 30
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr '*' expr . (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 9
|
||||||
|
|
||||||
|
|
||||||
|
state 31
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr '/' expr . (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 10
|
||||||
|
|
||||||
|
|
||||||
|
state 32
|
||||||
|
expr : expr . '+' expr (7)
|
||||||
|
expr : expr . '-' expr (8)
|
||||||
|
expr : expr . '*' expr (9)
|
||||||
|
expr : expr . '/' expr (10)
|
||||||
|
expr : expr . '%' expr (11)
|
||||||
|
expr : expr '%' expr . (11)
|
||||||
|
expr : expr . '&' expr (12)
|
||||||
|
expr : expr . '|' expr (13)
|
||||||
|
|
||||||
|
. reduce 11
|
||||||
|
|
||||||
|
|
||||||
|
16 terminals, 5 nonterminals
|
||||||
|
19 grammar rules, 33 states
|
||||||
|
|
||||||
|
grammar parser grammar
|
||||||
|
symbol# value# symbol
|
||||||
|
0 0 $end
|
||||||
|
1 256 error
|
||||||
|
2 257 DIGIT
|
||||||
|
3 258 LETTER
|
||||||
|
4 124 '|'
|
||||||
|
5 38 '&'
|
||||||
|
6 43 '+'
|
||||||
|
7 45 '-'
|
||||||
|
8 42 '*'
|
||||||
|
9 47 '/'
|
||||||
|
10 37 '%'
|
||||||
|
11 259 UMINUS
|
||||||
|
12 10 '\n'
|
||||||
|
13 61 '='
|
||||||
|
14 40 '('
|
||||||
|
15 41 ')'
|
||||||
|
16 260 $accept
|
||||||
|
17 261 list
|
||||||
|
18 262 stat
|
||||||
|
19 263 expr
|
||||||
|
20 264 number
|
1482
contrib/byacc/test/btyacc/calc_code_top.tab.c
Normal file
1482
contrib/byacc/test/btyacc/calc_code_top.tab.c
Normal file
File diff suppressed because it is too large
Load Diff
8
contrib/byacc/test/btyacc/calc_code_top.tab.h
Normal file
8
contrib/byacc/test/btyacc/calc_code_top.tab.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#ifndef _calc_code_top__defines_h_
|
||||||
|
#define _calc_code_top__defines_h_
|
||||||
|
|
||||||
|
#define DIGIT 257
|
||||||
|
#define LETTER 258
|
||||||
|
#define UMINUS 259
|
||||||
|
|
||||||
|
#endif /* _calc_code_top__defines_h_ */
|
@ -182,7 +182,7 @@ typedef int YYSTYPE;
|
|||||||
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
|
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
|
||||||
|
|
||||||
extern int YYPARSE_DECL();
|
extern int YYPARSE_DECL();
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
extern const YYINT yylhs[];
|
extern const YYINT yylhs[];
|
||||||
extern const YYINT yylen[];
|
extern const YYINT yylen[];
|
||||||
extern const YYINT yydefred[];
|
extern const YYINT yydefred[];
|
||||||
@ -207,13 +207,16 @@ extern const char *const yyname[];
|
|||||||
extern const char *const yyrule[];
|
extern const char *const yyrule[];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -226,17 +229,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -377,7 +380,7 @@ yylex(void)
|
|||||||
}
|
}
|
||||||
return( c );
|
return( c );
|
||||||
}
|
}
|
||||||
#line 381 "code_calc.code.c"
|
#line 384 "code_calc.code.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -516,7 +519,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -583,10 +586,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -697,7 +700,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -907,7 +910,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -936,7 +939,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -952,7 +955,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1038,10 +1041,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1107,7 +1110,7 @@ case 18:
|
|||||||
#line 67 "code_calc.y"
|
#line 67 "code_calc.y"
|
||||||
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
|
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
|
||||||
break;
|
break;
|
||||||
#line 1111 "code_calc.code.c"
|
#line 1114 "code_calc.code.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1162,12 +1165,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#undef YYBTYACC
|
#undef YYBTYACC
|
||||||
#define YYBTYACC 0
|
#define YYBTYACC 0
|
||||||
#define YYDEBUGSTR YYPREFIX "debug"
|
#define YYDEBUGSTR YYPREFIX "debug"
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
const YYINT calc_lhs[] = { -1,
|
const YYINT calc_lhs[] = { -1,
|
||||||
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
|
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
|
||||||
2, 2, 2, 2, 2, 2, 3, 3,
|
2, 2, 2, 2, 2, 2, 3, 3,
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
#define YYPREFIX "yy"
|
|
||||||
|
|
||||||
#define YYPURE 0
|
|
||||||
|
|
||||||
#line 2 "code_debug.y"
|
|
||||||
|
|
||||||
#ifdef YYBISON
|
|
||||||
int yylex(void);
|
|
||||||
static void yyerror(const char *);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#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();
|
|
||||||
|
|
||||||
extern int yydebug;
|
|
||||||
extern int yynerrs;
|
|
||||||
|
|
||||||
extern int yyerrflag;
|
|
||||||
extern int yychar;
|
|
||||||
extern YYSTYPE yyval;
|
|
||||||
extern YYSTYPE yylval;
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
|
||||||
extern YYLTYPE yyloc; /* position returned by actions */
|
|
||||||
extern YYLTYPE yylloc; /* position from the lexer */
|
|
||||||
#endif
|
|
@ -1,34 +0,0 @@
|
|||||||
0 $accept : S $end
|
|
||||||
|
|
||||||
1 S : error
|
|
||||||
|
|
||||||
state 0
|
|
||||||
$accept : . S $end (0)
|
|
||||||
|
|
||||||
error shift 1
|
|
||||||
. error
|
|
||||||
|
|
||||||
S goto 2
|
|
||||||
|
|
||||||
|
|
||||||
state 1
|
|
||||||
S : error . (1)
|
|
||||||
|
|
||||||
. reduce 1
|
|
||||||
|
|
||||||
|
|
||||||
state 2
|
|
||||||
$accept : S . $end (0)
|
|
||||||
|
|
||||||
$end accept
|
|
||||||
|
|
||||||
|
|
||||||
2 terminals, 2 nonterminals
|
|
||||||
2 grammar rules, 3 states
|
|
||||||
|
|
||||||
grammar parser grammar
|
|
||||||
symbol# value# symbol
|
|
||||||
0 0 $end
|
|
||||||
1 256 error
|
|
||||||
2 257 $accept
|
|
||||||
3 258 S
|
|
@ -172,7 +172,7 @@ typedef int YYSTYPE;
|
|||||||
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
|
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
|
||||||
|
|
||||||
extern int YYPARSE_DECL();
|
extern int YYPARSE_DECL();
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
extern const YYINT yylhs[];
|
extern const YYINT yylhs[];
|
||||||
extern const YYINT yylen[];
|
extern const YYINT yylen[];
|
||||||
extern const YYINT yydefred[];
|
extern const YYINT yydefred[];
|
||||||
@ -197,13 +197,16 @@ extern const char *const yyname[];
|
|||||||
extern const char *const yyrule[];
|
extern const char *const yyrule[];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -216,17 +219,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -347,7 +350,7 @@ yyerror(const char* s)
|
|||||||
{
|
{
|
||||||
printf("%s\n", s);
|
printf("%s\n", s);
|
||||||
}
|
}
|
||||||
#line 351 "code_error.code.c"
|
#line 354 "code_error.code.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -486,7 +489,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -553,10 +556,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -667,7 +670,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -877,7 +880,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -906,7 +909,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -922,7 +925,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1008,10 +1011,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1071,12 +1074,12 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#undef YYBTYACC
|
#undef YYBTYACC
|
||||||
#define YYBTYACC 0
|
#define YYBTYACC 0
|
||||||
#define YYDEBUGSTR YYPREFIX "debug"
|
#define YYDEBUGSTR YYPREFIX "debug"
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
const YYINT error_lhs[] = { -1,
|
const YYINT error_lhs[] = { -1,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
@ -16,78 +16,245 @@
|
|||||||
#undef YYBTYACC
|
#undef YYBTYACC
|
||||||
#define YYBTYACC 0
|
#define YYBTYACC 0
|
||||||
#define YYDEBUGSTR YYPREFIX "debug"
|
#define YYDEBUGSTR YYPREFIX "debug"
|
||||||
#line 20 "code_debug.c"
|
#define YYPREFIX "yy"
|
||||||
#include "rename_debug.i"
|
|
||||||
#include "rename_debug.h"
|
#define YYPURE 0
|
||||||
typedef short YYINT;
|
|
||||||
|
#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 34 "y.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
|
||||||
|
|
||||||
|
#if !(defined(yylex) || defined(YYSTATE))
|
||||||
|
int YYLEX_DECL();
|
||||||
|
#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 yylhs[] = { -1,
|
static const YYINT yylhs[] = { -1,
|
||||||
0,
|
0, 0, 0, 1, 1, 2, 2, 2, 2, 2,
|
||||||
|
2, 2, 2, 2, 2, 2, 3, 3,
|
||||||
};
|
};
|
||||||
static const YYINT yylen[] = { 2,
|
static const YYINT yylen[] = { 2,
|
||||||
1,
|
0, 3, 3, 1, 3, 3, 3, 3, 3, 3,
|
||||||
|
3, 3, 3, 2, 1, 1, 1, 2,
|
||||||
};
|
};
|
||||||
static const YYINT yydefred[] = { 0,
|
static const YYINT yydefred[] = { 1,
|
||||||
1, 0,
|
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 yystos[] = { 0,
|
static const YYINT yystos[] = { 0,
|
||||||
256, 258,
|
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,
|
||||||
};
|
};
|
||||||
static const YYINT yydgoto[] = { 2,
|
#endif /* YYDESTRUCT_CALL || YYSTYPE_TOSTRING */
|
||||||
|
static const YYINT yydgoto[] = { 1,
|
||||||
|
7, 8, 9,
|
||||||
};
|
};
|
||||||
static const YYINT yysindex[] = { -256,
|
static const YYINT yysindex[] = { 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,
|
0, 0,
|
||||||
};
|
};
|
||||||
static const YYINT yyrindex[] = { 0,
|
static const YYINT yyrindex[] = { 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,
|
0, 0,
|
||||||
};
|
};
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
static const YYINT yycindex[] = { 0,
|
static const YYINT yycindex[] = { 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
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
|
#endif
|
||||||
static const YYINT yygindex[] = { 0,
|
static const YYINT yygindex[] = { 0,
|
||||||
|
0, 65, 0,
|
||||||
};
|
};
|
||||||
#define YYTABLESIZE 0
|
#define YYTABLESIZE 220
|
||||||
static const YYINT yytable[] = { 1,
|
static const YYINT yytable[] = { 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 yycheck[] = { 256,
|
static const YYINT yycheck[] = { 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
|
#if YYBTYACC
|
||||||
static const YYINT yyctable[] = { 0,
|
static const YYINT yyctable[] = { -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||||
|
-1, -1, -1, -1, -1, -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
|
#endif
|
||||||
#define YYFINAL 2
|
#define YYFINAL 1
|
||||||
#ifndef YYDEBUG
|
#ifndef YYDEBUG
|
||||||
#define YYDEBUG 1
|
#define YYDEBUG 0
|
||||||
#endif
|
#endif
|
||||||
#define YYMAXTOKEN 256
|
#define YYMAXTOKEN 259
|
||||||
#define YYUNDFTOKEN 259
|
#define YYUNDFTOKEN 265
|
||||||
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
|
#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
static const char *const yyname[] = {
|
static const char *const yyname[] = {
|
||||||
|
|
||||||
"$end",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
"$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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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",
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
"illegal-symbol",
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"error","$accept","S","illegal-symbol",
|
|
||||||
};
|
};
|
||||||
static const char *const yyrule[] = {
|
static const char *const yyrule[] = {
|
||||||
"$accept : S",
|
"$accept : list",
|
||||||
"S : error",
|
"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
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -100,17 +267,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -141,9 +308,9 @@ do \
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned stacksize;
|
unsigned stacksize;
|
||||||
short *s_base;
|
YYINT *s_base;
|
||||||
short *s_mark;
|
YYINT *s_mark;
|
||||||
short *s_last;
|
YYINT *s_last;
|
||||||
YYSTYPE *l_base;
|
YYSTYPE *l_base;
|
||||||
YYSTYPE *l_mark;
|
YYSTYPE *l_mark;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
@ -201,37 +368,53 @@ static YYLTYPE *yylplim = 0;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Current position at lexical token queue */
|
/* Current position at lexical token queue */
|
||||||
static short *yylexp = 0;
|
static YYINT *yylexp = 0;
|
||||||
|
|
||||||
static short *yylexemes = 0;
|
static YYINT *yylexemes = 0;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#line 12 "code_debug.y"
|
#line 66 "calc.y"
|
||||||
|
/* start of programs */
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#ifdef YYBYACC
|
|
||||||
extern int YYLEX_DECL();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main(void)
|
main (void)
|
||||||
{
|
{
|
||||||
printf("yyparse() = %d\n", yyparse());
|
while(!feof(stdin)) {
|
||||||
|
yyparse();
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
yyerror(const char *s)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "%s\n", s);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
yylex(void)
|
yylex(void)
|
||||||
{
|
{
|
||||||
return -1;
|
/* 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 */
|
||||||
|
|
||||||
static void
|
int c;
|
||||||
yyerror(const char* s)
|
|
||||||
{
|
while( (c=getchar()) == ' ' ) { /* skip blanks */ }
|
||||||
printf("%s\n", s);
|
|
||||||
|
/* c is now nonblank */
|
||||||
|
|
||||||
|
if( islower( c )) {
|
||||||
|
yylval = c - 'a';
|
||||||
|
return ( LETTER );
|
||||||
|
}
|
||||||
|
if( isdigit( c )) {
|
||||||
|
yylval = c - '0';
|
||||||
|
return ( DIGIT );
|
||||||
|
}
|
||||||
|
return( c );
|
||||||
}
|
}
|
||||||
#line 236 "code_debug.c"
|
#line 418 "y.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -240,7 +423,7 @@ yyerror(const char* s)
|
|||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
#include <stdio.h> /* needed for printf */
|
#include <stdio.h> /* needed for printf */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h> /* needed for malloc, etc */
|
#include <stdlib.h> /* needed for malloc, etc */
|
||||||
@ -251,7 +434,7 @@ static int yygrowstack(YYSTACKDATA *data)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
unsigned newsize;
|
unsigned newsize;
|
||||||
short *newss;
|
YYINT *newss;
|
||||||
YYSTYPE *newvs;
|
YYSTYPE *newvs;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE *newps;
|
YYLTYPE *newps;
|
||||||
@ -265,7 +448,7 @@ static int yygrowstack(YYSTACKDATA *data)
|
|||||||
newsize = YYMAXDEPTH;
|
newsize = YYMAXDEPTH;
|
||||||
|
|
||||||
i = (int) (data->s_mark - data->s_base);
|
i = (int) (data->s_mark - data->s_base);
|
||||||
newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));
|
newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
|
||||||
if (newss == 0)
|
if (newss == 0)
|
||||||
return YYENOMEM;
|
return YYENOMEM;
|
||||||
|
|
||||||
@ -329,7 +512,7 @@ yyNewState(unsigned size)
|
|||||||
#endif
|
#endif
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
p->yystack.s_base = (short *) malloc(size * sizeof(short));
|
p->yystack.s_base = (YYINT *) malloc(size * sizeof(YYINT));
|
||||||
if (p->yystack.s_base == NULL) return NULL;
|
if (p->yystack.s_base == NULL) return NULL;
|
||||||
p->yystack.l_base = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));
|
p->yystack.l_base = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));
|
||||||
if (p->yystack.l_base == NULL) return NULL;
|
if (p->yystack.l_base == NULL) return NULL;
|
||||||
@ -370,7 +553,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -384,11 +567,16 @@ YYPARSE_DECL()
|
|||||||
if (yydebug)
|
if (yydebug)
|
||||||
fprintf(stderr, "%sdebug[<# of symbols on state stack>]\n", YYPREFIX);
|
fprintf(stderr, "%sdebug[<# of symbols on state stack>]\n", YYPREFIX);
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
|
memset(yyerror_loc_range, 0, sizeof(yyerror_loc_range));
|
||||||
|
#endif
|
||||||
|
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
yyps = yyNewState(0); if (yyps == 0) goto yyenomem;
|
yyps = yyNewState(0); if (yyps == 0) goto yyenomem;
|
||||||
yyps->save = 0;
|
yyps->save = 0;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
|
yym = 0;
|
||||||
|
yyn = 0;
|
||||||
yynerrs = 0;
|
yynerrs = 0;
|
||||||
yyerrflag = 0;
|
yyerrflag = 0;
|
||||||
yychar = YYEMPTY;
|
yychar = YYEMPTY;
|
||||||
@ -428,14 +616,14 @@ YYPARSE_DECL()
|
|||||||
/* in trial mode; save scanner results for future parse attempts */
|
/* in trial mode; save scanner results for future parse attempts */
|
||||||
if (yylvp == yylvlim)
|
if (yylvp == yylvlim)
|
||||||
{ /* Enlarge lexical value queue */
|
{ /* Enlarge lexical value queue */
|
||||||
int p = yylvp - yylvals;
|
size_t p = (size_t) (yylvp - yylvals);
|
||||||
int s = yylvlim - yylvals;
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = (short *) realloc(yylexemes, s * sizeof(short))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = (YYSTYPE *) realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = (YYLTYPE *) realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -445,7 +633,7 @@ YYPARSE_DECL()
|
|||||||
#endif
|
#endif
|
||||||
yylexp = yylexemes + p;
|
yylexp = yylexemes + p;
|
||||||
}
|
}
|
||||||
*yylexp = (short) YYLEX;
|
*yylexp = (YYINT) YYLEX;
|
||||||
*yylvp++ = yylval;
|
*yylvp++ = yylval;
|
||||||
yylve++;
|
yylve++;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
@ -462,11 +650,10 @@ YYPARSE_DECL()
|
|||||||
} while (0);
|
} while (0);
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
if (yychar < 0) yychar = YYEOF;
|
if (yychar < 0) yychar = YYEOF;
|
||||||
/* if ((yychar = YYLEX) < 0) yychar = YYEOF; */
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
yys = yyname[YYTRANSLATE(yychar)];
|
if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
|
||||||
fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)",
|
fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)",
|
||||||
YYDEBUGSTR, yydepth, yystate, yychar, yys);
|
YYDEBUGSTR, yydepth, yystate, yychar, yys);
|
||||||
#ifdef YYSTYPE_TOSTRING
|
#ifdef YYSTYPE_TOSTRING
|
||||||
@ -525,12 +712,12 @@ YYPARSE_DECL()
|
|||||||
save->state = yystate;
|
save->state = yystate;
|
||||||
save->errflag = yyerrflag;
|
save->errflag = yyerrflag;
|
||||||
save->yystack.s_mark = save->yystack.s_base + (yystack.s_mark - yystack.s_base);
|
save->yystack.s_mark = save->yystack.s_base + (yystack.s_mark - yystack.s_base);
|
||||||
memcpy (save->yystack.s_base, yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
|
memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
|
||||||
save->yystack.l_mark = save->yystack.l_base + (yystack.l_mark - yystack.l_base);
|
save->yystack.l_mark = save->yystack.l_base + (yystack.l_mark - yystack.l_base);
|
||||||
memcpy (save->yystack.l_base, yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
save->yystack.p_mark = save->yystack.p_base + (yystack.p_mark - yystack.p_base);
|
save->yystack.p_mark = save->yystack.p_base + (yystack.p_mark - yystack.p_base);
|
||||||
memcpy (save->yystack.p_base, yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
||||||
#endif
|
#endif
|
||||||
ctry = yytable[yyn];
|
ctry = yytable[yyn];
|
||||||
if (yyctable[ctry] == -1)
|
if (yyctable[ctry] == -1)
|
||||||
@ -547,7 +734,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = (short *) malloc((YYLVQUEUEGROWTH) * sizeof(short));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -571,7 +758,7 @@ YYPARSE_DECL()
|
|||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
*yylpe++ = yylloc;
|
*yylpe++ = yylloc;
|
||||||
#endif
|
#endif
|
||||||
*yylexp = (short) yychar;
|
*yylexp = (YYINT) yychar;
|
||||||
yychar = YYEMPTY;
|
yychar = YYEMPTY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -585,7 +772,7 @@ YYPARSE_DECL()
|
|||||||
yylexp--;
|
yylexp--;
|
||||||
yychar = YYEMPTY;
|
yychar = YYEMPTY;
|
||||||
}
|
}
|
||||||
save->lexeme = yylvp - yylvals;
|
save->lexeme = (int) (yylvp - yylvals);
|
||||||
yyps->save = save;
|
yyps->save = save;
|
||||||
}
|
}
|
||||||
if (yytable[yyn] == ctry)
|
if (yytable[yyn] == ctry)
|
||||||
@ -606,7 +793,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
|
if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
|
||||||
goto yyoverflow;
|
goto yyoverflow;
|
||||||
yystate = yyctable[ctry];
|
yystate = yyctable[ctry];
|
||||||
*++yystack.s_mark = (short) yystate;
|
*++yystack.s_mark = (YYINT) yystate;
|
||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
*++yystack.p_mark = yylloc;
|
*++yystack.p_mark = yylloc;
|
||||||
@ -652,9 +839,18 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
yynewerrflag = 1;
|
yynewerrflag = 1;
|
||||||
goto yyerrhandler;
|
goto yyerrhandler;
|
||||||
goto yyerrlab;
|
goto yyerrlab; /* redundant goto avoids 'unused label' warning */
|
||||||
|
|
||||||
yyerrlab:
|
yyerrlab:
|
||||||
|
/* explicit YYERROR from an action -- pop the rhs of the rule reduced
|
||||||
|
* before looking for error recovery */
|
||||||
|
yystack.s_mark -= yym;
|
||||||
|
yystate = *yystack.s_mark;
|
||||||
|
yystack.l_mark -= yym;
|
||||||
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
|
yystack.p_mark -= yym;
|
||||||
|
#endif
|
||||||
|
|
||||||
yynewerrflag = 0;
|
yynewerrflag = 0;
|
||||||
yyerrhandler:
|
yyerrhandler:
|
||||||
while (yyps->save)
|
while (yyps->save)
|
||||||
@ -679,14 +875,14 @@ YYPARSE_DECL()
|
|||||||
yyerrctx->state = yystate;
|
yyerrctx->state = yystate;
|
||||||
yyerrctx->errflag = yyerrflag;
|
yyerrctx->errflag = yyerrflag;
|
||||||
yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);
|
yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);
|
||||||
memcpy (yyerrctx->yystack.s_base, yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
|
memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
|
||||||
yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);
|
yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);
|
||||||
memcpy (yyerrctx->yystack.l_base, yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);
|
yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);
|
||||||
memcpy (yyerrctx->yystack.p_base, yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
||||||
#endif
|
#endif
|
||||||
yyerrctx->lexeme = yylvp - yylvals;
|
yyerrctx->lexeme = (int) (yylvp - yylvals);
|
||||||
}
|
}
|
||||||
yylvp = yylvals + save->lexeme;
|
yylvp = yylvals + save->lexeme;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
@ -695,12 +891,12 @@ YYPARSE_DECL()
|
|||||||
yylexp = yylexemes + save->lexeme;
|
yylexp = yylexemes + save->lexeme;
|
||||||
yychar = YYEMPTY;
|
yychar = YYEMPTY;
|
||||||
yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);
|
yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);
|
||||||
memcpy (yystack.s_base, save->yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
|
memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
|
||||||
yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);
|
yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);
|
||||||
memcpy (yystack.l_base, save->yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);
|
yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);
|
||||||
memcpy (yystack.p_base, save->yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
||||||
#endif
|
#endif
|
||||||
ctry = ++save->ctry;
|
ctry = ++save->ctry;
|
||||||
yystate = save->state;
|
yystate = save->state;
|
||||||
@ -730,12 +926,12 @@ YYPARSE_DECL()
|
|||||||
yylloc = yylpp[-1];
|
yylloc = yylpp[-1];
|
||||||
#endif
|
#endif
|
||||||
yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);
|
yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);
|
||||||
memcpy (yystack.s_base, yyerrctx->yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
|
memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
|
||||||
yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);
|
yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);
|
||||||
memcpy (yystack.l_base, yyerrctx->yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);
|
yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);
|
||||||
memcpy (yystack.p_base, yyerrctx->yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
||||||
#endif
|
#endif
|
||||||
yystate = yyerrctx->state;
|
yystate = yyerrctx->state;
|
||||||
yyFreeState(yyerrctx);
|
yyFreeState(yyerrctx);
|
||||||
@ -748,11 +944,11 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
goto yyerrlab;
|
goto yyerrlab; /* redundant goto avoids 'unused label' warning */
|
||||||
yyerrlab:
|
yyerrlab:
|
||||||
#endif
|
#endif
|
||||||
++yynerrs;
|
++yynerrs;
|
||||||
@ -777,7 +973,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -793,7 +989,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -821,7 +1017,7 @@ YYPARSE_DECL()
|
|||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
yys = yyname[YYTRANSLATE(yychar)];
|
if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
|
||||||
fprintf(stderr, "%s[%d]: state %d, error recovery discarding token %d (%s)\n",
|
fprintf(stderr, "%s[%d]: state %d, error recovery discarding token %d (%s)\n",
|
||||||
YYDEBUGSTR, yydepth, yystate, yychar, yys);
|
YYDEBUGSTR, yydepth, yystate, yychar, yys);
|
||||||
}
|
}
|
||||||
@ -879,15 +1075,76 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
switch (yyn)
|
switch (yyn)
|
||||||
{
|
{
|
||||||
|
case 3:
|
||||||
|
#line 28 "calc.y"
|
||||||
|
{ yyerrok ; }
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
#line 32 "calc.y"
|
||||||
|
{ printf("%d\n",yystack.l_mark[0]);}
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
#line 34 "calc.y"
|
||||||
|
{ regs[yystack.l_mark[-2]] = yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
#line 38 "calc.y"
|
||||||
|
{ yyval = yystack.l_mark[-1]; }
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
#line 40 "calc.y"
|
||||||
|
{ yyval = yystack.l_mark[-2] + yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
#line 42 "calc.y"
|
||||||
|
{ yyval = yystack.l_mark[-2] - yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
#line 44 "calc.y"
|
||||||
|
{ yyval = yystack.l_mark[-2] * yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
#line 46 "calc.y"
|
||||||
|
{ yyval = yystack.l_mark[-2] / yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
#line 48 "calc.y"
|
||||||
|
{ yyval = yystack.l_mark[-2] % yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
#line 50 "calc.y"
|
||||||
|
{ yyval = yystack.l_mark[-2] & yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
#line 52 "calc.y"
|
||||||
|
{ yyval = yystack.l_mark[-2] | yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
#line 54 "calc.y"
|
||||||
|
{ yyval = - yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
#line 56 "calc.y"
|
||||||
|
{ yyval = regs[yystack.l_mark[0]]; }
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
#line 61 "calc.y"
|
||||||
|
{ yyval = yystack.l_mark[0]; base = (yystack.l_mark[0]==0) ? 8 : 10; }
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
#line 63 "calc.y"
|
||||||
|
{ yyval = base * yystack.l_mark[-1] + yystack.l_mark[0]; }
|
||||||
|
break;
|
||||||
|
#line 1148 "y.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -938,16 +1195,16 @@ YYPARSE_DECL()
|
|||||||
/* in trial mode; save scanner results for future parse attempts */
|
/* in trial mode; save scanner results for future parse attempts */
|
||||||
if (yylvp == yylvlim)
|
if (yylvp == yylvlim)
|
||||||
{ /* Enlarge lexical value queue */
|
{ /* Enlarge lexical value queue */
|
||||||
int p = yylvp - yylvals;
|
size_t p = (size_t) (yylvp - yylvals);
|
||||||
int s = yylvlim - yylvals;
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = (short *) realloc(yylexemes, s * sizeof(short))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = (YYSTYPE *) realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = (YYLTYPE *) realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
@ -958,7 +1215,7 @@ YYPARSE_DECL()
|
|||||||
#endif
|
#endif
|
||||||
yylexp = yylexemes + p;
|
yylexp = yylexemes + p;
|
||||||
}
|
}
|
||||||
*yylexp = (short) YYLEX;
|
*yylexp = (YYINT) YYLEX;
|
||||||
*yylvp++ = yylval;
|
*yylvp++ = yylval;
|
||||||
yylve++;
|
yylve++;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
@ -975,12 +1232,11 @@ YYPARSE_DECL()
|
|||||||
} while (0);
|
} while (0);
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
if (yychar < 0) yychar = YYEOF;
|
if (yychar < 0) yychar = YYEOF;
|
||||||
/* if ((yychar = YYLEX) < 0) yychar = YYEOF; */
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
yys = yyname[YYTRANSLATE(yychar)];
|
if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
|
||||||
fprintf(stderr, "%s[%d]: state %d, reading %d (%s)\n",
|
fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)\n",
|
||||||
YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);
|
YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1007,7 +1263,7 @@ YYPARSE_DECL()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
|
if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
|
||||||
*++yystack.s_mark = (short) yystate;
|
*++yystack.s_mark = (YYINT) yystate;
|
||||||
*++yystack.l_mark = yyval;
|
*++yystack.l_mark = yyval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
@ -1042,12 +1298,12 @@ YYPARSE_DECL()
|
|||||||
yylexp = yylexemes + yypath->lexeme;
|
yylexp = yylexemes + yypath->lexeme;
|
||||||
yychar = YYEMPTY;
|
yychar = YYEMPTY;
|
||||||
yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);
|
yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);
|
||||||
memcpy (yystack.s_base, yypath->yystack.s_base, (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
|
memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
|
||||||
yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);
|
yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);
|
||||||
memcpy (yystack.l_base, yypath->yystack.l_base, (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);
|
yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);
|
||||||
memcpy (yystack.p_base, yypath->yystack.p_base, (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
|
||||||
#endif
|
#endif
|
||||||
yystate = yypath->state;
|
yystate = yypath->state;
|
||||||
goto yyloop;
|
goto yyloop;
|
@ -1,6 +1,8 @@
|
|||||||
#ifndef _yy_defines_h_
|
#ifndef _yy_defines_h_
|
||||||
#define _yy_defines_h_
|
#define _yy_defines_h_
|
||||||
|
|
||||||
#define YYERRCODE 256
|
#define DIGIT 257
|
||||||
|
#define LETTER 258
|
||||||
|
#define UMINUS 259
|
||||||
|
|
||||||
#endif /* _yy_defines_h_ */
|
#endif /* _yy_defines_h_ */
|
0
contrib/byacc/test/btyacc/defines1.error
Normal file
0
contrib/byacc/test/btyacc/defines1.error
Normal file
0
contrib/byacc/test/btyacc/defines1.output
Normal file
0
contrib/byacc/test/btyacc/defines1.output
Normal file
1381
contrib/byacc/test/btyacc/defines2.calc.c
Normal file
1381
contrib/byacc/test/btyacc/defines2.calc.c
Normal file
File diff suppressed because it is too large
Load Diff
8
contrib/byacc/test/btyacc/defines2.calc.h
Normal file
8
contrib/byacc/test/btyacc/defines2.calc.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#ifndef _yy_defines_h_
|
||||||
|
#define _yy_defines_h_
|
||||||
|
|
||||||
|
#define DIGIT 257
|
||||||
|
#define LETTER 258
|
||||||
|
#define UMINUS 259
|
||||||
|
|
||||||
|
#endif /* _yy_defines_h_ */
|
0
contrib/byacc/test/btyacc/defines2.error
Normal file
0
contrib/byacc/test/btyacc/defines2.error
Normal file
0
contrib/byacc/test/btyacc/defines2.output
Normal file
0
contrib/byacc/test/btyacc/defines2.output
Normal file
1381
contrib/byacc/test/btyacc/defines3.calc.c
Normal file
1381
contrib/byacc/test/btyacc/defines3.calc.c
Normal file
File diff suppressed because it is too large
Load Diff
8
contrib/byacc/test/btyacc/defines3.calc.h
Normal file
8
contrib/byacc/test/btyacc/defines3.calc.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#ifndef _yy_defines_h_
|
||||||
|
#define _yy_defines_h_
|
||||||
|
|
||||||
|
#define DIGIT 257
|
||||||
|
#define LETTER 258
|
||||||
|
#define UMINUS 259
|
||||||
|
|
||||||
|
#endif /* _yy_defines_h_ */
|
0
contrib/byacc/test/btyacc/defines3.error
Normal file
0
contrib/byacc/test/btyacc/defines3.error
Normal file
0
contrib/byacc/test/btyacc/defines3.output
Normal file
0
contrib/byacc/test/btyacc/defines3.output
Normal file
@ -164,7 +164,7 @@ typedef int YYSTYPE;
|
|||||||
extern int YYPARSE_DECL();
|
extern int YYPARSE_DECL();
|
||||||
|
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT empty_lhs[] = { -1,
|
static const YYINT empty_lhs[] = { -1,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
@ -229,13 +229,16 @@ static const char *const empty_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -248,17 +251,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -366,7 +369,7 @@ static void
|
|||||||
YYERROR_DECL() {
|
YYERROR_DECL() {
|
||||||
printf("%s\n",s);
|
printf("%s\n",s);
|
||||||
}
|
}
|
||||||
#line 370 "empty.tab.c"
|
#line 373 "empty.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -505,7 +508,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -572,10 +575,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -686,7 +689,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -896,7 +899,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -925,7 +928,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -941,7 +944,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1027,10 +1030,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1090,12 +1093,12 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -197,7 +197,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define INTEGER 260
|
#define INTEGER 260
|
||||||
#define NAME 261
|
#define NAME 261
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT err_inherit3_lhs[] = { -1,
|
static const YYINT err_inherit3_lhs[] = { -1,
|
||||||
5, 6, 0, 0, 3, 3, 4, 4, 7, 1,
|
5, 6, 0, 0, 3, 3, 4, 4, 7, 1,
|
||||||
1, 8, 2,
|
1, 8, 2,
|
||||||
@ -290,13 +290,16 @@ static const char *const err_inherit3_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -309,17 +312,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -418,7 +421,7 @@ static YYINT *yylexemes = 0;
|
|||||||
|
|
||||||
extern int YYLEX_DECL();
|
extern int YYLEX_DECL();
|
||||||
extern void YYERROR_DECL();
|
extern void YYERROR_DECL();
|
||||||
#line 422 "err_inherit3.tab.c"
|
#line 425 "err_inherit3.tab.c"
|
||||||
|
|
||||||
/* Release memory associated with symbol. */
|
/* Release memory associated with symbol. */
|
||||||
#if ! defined YYDESTRUCT_IS_DECLARED
|
#if ! defined YYDESTRUCT_IS_DECLARED
|
||||||
@ -438,7 +441,7 @@ YYDESTRUCT_DECL()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#line 442 "err_inherit3.tab.c"
|
#line 445 "err_inherit3.tab.c"
|
||||||
case 264:
|
case 264:
|
||||||
#line 30 "err_inherit3.y"
|
#line 30 "err_inherit3.y"
|
||||||
{
|
{
|
||||||
@ -450,7 +453,7 @@ YYDESTRUCT_DECL()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#line 454 "err_inherit3.tab.c"
|
#line 457 "err_inherit3.tab.c"
|
||||||
case 265:
|
case 265:
|
||||||
#line 30 "err_inherit3.y"
|
#line 30 "err_inherit3.y"
|
||||||
{
|
{
|
||||||
@ -462,7 +465,7 @@ YYDESTRUCT_DECL()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#line 466 "err_inherit3.tab.c"
|
#line 469 "err_inherit3.tab.c"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#define YYDESTRUCT_IS_DECLARED 1
|
#define YYDESTRUCT_IS_DECLARED 1
|
||||||
@ -605,7 +608,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -672,10 +675,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -786,7 +789,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -996,7 +999,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1025,7 +1028,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1041,7 +1044,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1127,10 +1130,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1192,7 +1195,7 @@ case 13:
|
|||||||
#line 75 "err_inherit3.y"
|
#line 75 "err_inherit3.y"
|
||||||
{ yyval.nlist = yystack.l_mark[0].nlist; }
|
{ yyval.nlist = yystack.l_mark[0].nlist; }
|
||||||
break;
|
break;
|
||||||
#line 1196 "err_inherit3.tab.c"
|
#line 1199 "err_inherit3.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1247,12 +1250,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -219,7 +219,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define INTEGER 260
|
#define INTEGER 260
|
||||||
#define NAME 261
|
#define NAME 261
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT err_inherit4_lhs[] = { -1,
|
static const YYINT err_inherit4_lhs[] = { -1,
|
||||||
5, 6, 0, 0, 3, 3, 4, 4, 1, 1,
|
5, 6, 0, 0, 3, 3, 4, 4, 1, 1,
|
||||||
2,
|
2,
|
||||||
@ -309,13 +309,16 @@ static const char *const err_inherit4_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -328,17 +331,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -437,7 +440,7 @@ static YYINT *yylexemes = 0;
|
|||||||
|
|
||||||
extern int YYLEX_DECL();
|
extern int YYLEX_DECL();
|
||||||
extern void YYERROR_DECL();
|
extern void YYERROR_DECL();
|
||||||
#line 441 "err_inherit4.tab.c"
|
#line 444 "err_inherit4.tab.c"
|
||||||
|
|
||||||
/* Release memory associated with symbol. */
|
/* Release memory associated with symbol. */
|
||||||
#if ! defined YYDESTRUCT_IS_DECLARED
|
#if ! defined YYDESTRUCT_IS_DECLARED
|
||||||
@ -450,17 +453,17 @@ YYDESTRUCT_DECL()
|
|||||||
#line 28 "err_inherit4.y"
|
#line 28 "err_inherit4.y"
|
||||||
{ }
|
{ }
|
||||||
break;
|
break;
|
||||||
#line 454 "err_inherit4.tab.c"
|
#line 457 "err_inherit4.tab.c"
|
||||||
case 264:
|
case 264:
|
||||||
#line 28 "err_inherit4.y"
|
#line 28 "err_inherit4.y"
|
||||||
{ }
|
{ }
|
||||||
break;
|
break;
|
||||||
#line 459 "err_inherit4.tab.c"
|
#line 462 "err_inherit4.tab.c"
|
||||||
case 265:
|
case 265:
|
||||||
#line 28 "err_inherit4.y"
|
#line 28 "err_inherit4.y"
|
||||||
{ }
|
{ }
|
||||||
break;
|
break;
|
||||||
#line 464 "err_inherit4.tab.c"
|
#line 467 "err_inherit4.tab.c"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#define YYDESTRUCT_IS_DECLARED 1
|
#define YYDESTRUCT_IS_DECLARED 1
|
||||||
@ -603,7 +606,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -670,10 +673,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -784,7 +787,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -994,7 +997,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1023,7 +1026,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1039,7 +1042,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1125,10 +1128,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1182,7 +1185,7 @@ case 11:
|
|||||||
#line 77 "err_inherit4.y"
|
#line 77 "err_inherit4.y"
|
||||||
{ yyval.nlist = yystack.l_mark[0].nlist; yyloc = yystack.p_mark[1]; }
|
{ yyval.nlist = yystack.l_mark[0].nlist; yyloc = yystack.p_mark[1]; }
|
||||||
break;
|
break;
|
||||||
#line 1186 "err_inherit4.tab.c"
|
#line 1189 "err_inherit4.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1237,12 +1240,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -35,5 +35,6 @@ typedef struct YYLTYPE
|
|||||||
#define YYLTYPE_IS_DECLARED 1
|
#define YYLTYPE_IS_DECLARED 1
|
||||||
#endif
|
#endif
|
||||||
#define YYRHSLOC(rhs, k) ((rhs)[k])
|
#define YYRHSLOC(rhs, k) ((rhs)[k])
|
||||||
|
extern YYLTYPE err_inherit4_lloc;
|
||||||
|
|
||||||
#endif /* _err_inherit4__defines_h_ */
|
#endif /* _err_inherit4__defines_h_ */
|
||||||
|
@ -154,7 +154,7 @@ static void yyerror(const char *);
|
|||||||
extern int YYPARSE_DECL();
|
extern int YYPARSE_DECL();
|
||||||
|
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT err_syntax10_lhs[] = { -1,
|
static const YYINT err_syntax10_lhs[] = { -1,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
@ -219,13 +219,16 @@ static const char *const err_syntax10_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -238,17 +241,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -365,7 +368,7 @@ yyerror(const char* s)
|
|||||||
{
|
{
|
||||||
printf("%s\n", s);
|
printf("%s\n", s);
|
||||||
}
|
}
|
||||||
#line 369 "err_syntax10.tab.c"
|
#line 372 "err_syntax10.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -504,7 +507,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -571,10 +574,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -685,7 +688,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -895,7 +898,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -924,7 +927,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -940,7 +943,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1026,10 +1029,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1089,12 +1092,12 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -160,7 +160,7 @@ typedef int YYSTYPE;
|
|||||||
extern int YYPARSE_DECL();
|
extern int YYPARSE_DECL();
|
||||||
|
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT err_syntax11_lhs[] = { -1,
|
static const YYINT err_syntax11_lhs[] = { -1,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
@ -225,13 +225,16 @@ static const char *const err_syntax11_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -244,17 +247,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -371,7 +374,7 @@ yyerror(const char* s)
|
|||||||
{
|
{
|
||||||
printf("%s\n", s);
|
printf("%s\n", s);
|
||||||
}
|
}
|
||||||
#line 375 "err_syntax11.tab.c"
|
#line 378 "err_syntax11.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -510,7 +513,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -577,10 +580,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -691,7 +694,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -901,7 +904,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -930,7 +933,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -946,7 +949,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1032,10 +1035,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1095,12 +1098,12 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -161,7 +161,7 @@ extern int YYPARSE_DECL();
|
|||||||
|
|
||||||
#define text 456
|
#define text 456
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT err_syntax12_lhs[] = { -1,
|
static const YYINT err_syntax12_lhs[] = { -1,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
@ -231,13 +231,16 @@ static const char *const err_syntax12_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -250,17 +253,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -377,7 +380,7 @@ yyerror(const char* s)
|
|||||||
{
|
{
|
||||||
printf("%s\n", s);
|
printf("%s\n", s);
|
||||||
}
|
}
|
||||||
#line 381 "err_syntax12.tab.c"
|
#line 384 "err_syntax12.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -516,7 +519,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -583,10 +586,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -697,7 +700,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -907,7 +910,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -936,7 +939,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -952,7 +955,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1038,10 +1041,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1101,12 +1104,12 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -160,7 +160,7 @@ typedef int YYSTYPE;
|
|||||||
extern int YYPARSE_DECL();
|
extern int YYPARSE_DECL();
|
||||||
|
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT err_syntax18_lhs[] = { -1,
|
static const YYINT err_syntax18_lhs[] = { -1,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
@ -228,13 +228,16 @@ static const char *const err_syntax18_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -247,17 +250,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -374,7 +377,7 @@ yyerror(const char* s)
|
|||||||
{
|
{
|
||||||
printf("%s\n", s);
|
printf("%s\n", s);
|
||||||
}
|
}
|
||||||
#line 378 "err_syntax18.tab.c"
|
#line 381 "err_syntax18.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -513,7 +516,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -580,10 +583,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -694,7 +697,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -904,7 +907,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -933,7 +936,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -949,7 +952,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1035,10 +1038,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1048,7 +1051,7 @@ case 1:
|
|||||||
#line 9 "err_syntax18.y"
|
#line 9 "err_syntax18.y"
|
||||||
{ yyval = yystack.l_mark[1]; }
|
{ yyval = yystack.l_mark[1]; }
|
||||||
break;
|
break;
|
||||||
#line 1052 "err_syntax18.tab.c"
|
#line 1055 "err_syntax18.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1103,12 +1106,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -155,7 +155,7 @@ extern int YYPARSE_DECL();
|
|||||||
|
|
||||||
#define recur 257
|
#define recur 257
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT err_syntax20_lhs[] = { -1,
|
static const YYINT err_syntax20_lhs[] = { -1,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
@ -223,13 +223,16 @@ static const char *const err_syntax20_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -242,17 +245,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -369,7 +372,7 @@ yyerror(const char* s)
|
|||||||
{
|
{
|
||||||
printf("%s\n", s);
|
printf("%s\n", s);
|
||||||
}
|
}
|
||||||
#line 373 "err_syntax20.tab.c"
|
#line 376 "err_syntax20.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -508,7 +511,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -575,10 +578,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -689,7 +692,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -899,7 +902,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -928,7 +931,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -944,7 +947,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1030,10 +1033,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1043,7 +1046,7 @@ case 1:
|
|||||||
#line 12 "err_syntax20.y"
|
#line 12 "err_syntax20.y"
|
||||||
{ yystack.l_mark[-1].rechk = 3; }
|
{ yystack.l_mark[-1].rechk = 3; }
|
||||||
break;
|
break;
|
||||||
#line 1047 "err_syntax20.tab.c"
|
#line 1050 "err_syntax20.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1098,12 +1101,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -160,7 +160,7 @@ typedef int YYSTYPE;
|
|||||||
extern int YYPARSE_DECL();
|
extern int YYPARSE_DECL();
|
||||||
|
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT error_lhs[] = { -1,
|
static const YYINT error_lhs[] = { -1,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
@ -224,13 +224,16 @@ static const char *const error_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -243,17 +246,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -370,7 +373,7 @@ yyerror(const char* s)
|
|||||||
{
|
{
|
||||||
printf("%s\n", s);
|
printf("%s\n", s);
|
||||||
}
|
}
|
||||||
#line 374 "error.tab.c"
|
#line 377 "error.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -509,7 +512,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -576,10 +579,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -690,7 +693,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -900,7 +903,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -929,7 +932,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -945,7 +948,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1031,10 +1034,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1094,12 +1097,12 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -198,7 +198,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define ID 257
|
#define ID 257
|
||||||
#define CONST 258
|
#define CONST 258
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT expr.oxout_lhs[] = { -1,
|
static const YYINT expr.oxout_lhs[] = { -1,
|
||||||
2, 0, 1, 3, 3, 3, 3, 3, 3, 3,
|
2, 0, 1, 3, 3, 3, 3, 3, 3, 3,
|
||||||
};
|
};
|
||||||
@ -345,13 +345,16 @@ static const char *const expr.oxout_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -364,17 +367,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -1790,7 +1793,7 @@ void yyyUnsolvedInstSearchTrav(yyyGNT *pNode)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#line 1794 "expr.oxout.tab.c"
|
#line 1797 "expr.oxout.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -1929,7 +1932,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -1996,10 +1999,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -2110,7 +2113,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -2320,7 +2323,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -2349,7 +2352,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -2365,7 +2368,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -2451,10 +2454,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -2518,7 +2521,7 @@ case 10:
|
|||||||
yyyGenIntNode(8,1,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
|
yyyGenIntNode(8,1,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
|
||||||
yyyAdjustINRC(8,1,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
|
yyyAdjustINRC(8,1,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
|
||||||
break;
|
break;
|
||||||
#line 2522 "expr.oxout.tab.c"
|
#line 2525 "expr.oxout.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2573,12 +2576,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -144,6 +144,7 @@ static void yyerror(const char *s);
|
|||||||
|
|
||||||
/* #include "cproto.h" */
|
/* #include "cproto.h" */
|
||||||
#define MAX_TEXT_SIZE 1024
|
#define MAX_TEXT_SIZE 1024
|
||||||
|
#define TEXT_LEN (MAX_TEXT_SIZE / 2 - 3)
|
||||||
|
|
||||||
/* Prototype styles */
|
/* Prototype styles */
|
||||||
#if OPT_LINTLIBRARY
|
#if OPT_LINTLIBRARY
|
||||||
@ -404,7 +405,7 @@ haveAnsiParam (void)
|
|||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
#line 408 "grammar.tab.c"
|
#line 409 "grammar.tab.c"
|
||||||
|
|
||||||
/* compatibility with bison */
|
/* compatibility with bison */
|
||||||
#ifdef YYPARSE_PARAM
|
#ifdef YYPARSE_PARAM
|
||||||
@ -473,7 +474,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define T_ASMARG 290
|
#define T_ASMARG 290
|
||||||
#define T_VA_DCL 291
|
#define T_VA_DCL 291
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT grammar_lhs[] = { -1,
|
static const YYINT grammar_lhs[] = { -1,
|
||||||
0, 0, 26, 26, 27, 27, 27, 27, 27, 27,
|
0, 0, 26, 26, 27, 27, 27, 27, 27, 27,
|
||||||
27, 31, 30, 30, 28, 28, 34, 28, 32, 32,
|
27, 31, 30, 30, 28, 28, 34, 28, 32, 32,
|
||||||
@ -1048,13 +1049,16 @@ static const char *const grammar_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -1067,17 +1071,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -1172,7 +1176,7 @@ static YYINT *yylexp = 0;
|
|||||||
|
|
||||||
static YYINT *yylexemes = 0;
|
static YYINT *yylexemes = 0;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#line 1014 "grammar.y"
|
#line 1015 "grammar.y"
|
||||||
|
|
||||||
/* lex.yy.c */
|
/* lex.yy.c */
|
||||||
#define BEGIN yy_start = 1 + 2 *
|
#define BEGIN yy_start = 1 + 2 *
|
||||||
@ -1189,7 +1193,7 @@ extern char *yytext;
|
|||||||
extern FILE *yyin, *yyout;
|
extern FILE *yyin, *yyout;
|
||||||
|
|
||||||
static int curly; /* number of curly brace nesting levels */
|
static int curly; /* number of curly brace nesting levels */
|
||||||
static int ly_count; /* number of occurances of %% */
|
static int ly_count; /* number of occurrences of %% */
|
||||||
static int inc_depth; /* include nesting level */
|
static int inc_depth; /* include nesting level */
|
||||||
static SymbolTable *included_files; /* files already included */
|
static SymbolTable *included_files; /* files already included */
|
||||||
static int yy_start = 0; /* start state number */
|
static int yy_start = 0; /* start state number */
|
||||||
@ -1343,7 +1347,7 @@ free_parser(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#line 1347 "grammar.tab.c"
|
#line 1351 "grammar.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -1482,7 +1486,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -1549,10 +1553,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -1663,7 +1667,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -1873,7 +1877,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -1902,7 +1906,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -1918,7 +1922,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -2004,29 +2008,29 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
switch (yyn)
|
switch (yyn)
|
||||||
{
|
{
|
||||||
case 10:
|
case 10:
|
||||||
#line 377 "grammar.y"
|
#line 378 "grammar.y"
|
||||||
{
|
{
|
||||||
yyerrok;
|
yyerrok;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
#line 381 "grammar.y"
|
#line 382 "grammar.y"
|
||||||
{
|
{
|
||||||
yyerrok;
|
yyerrok;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
#line 392 "grammar.y"
|
#line 393 "grammar.y"
|
||||||
{
|
{
|
||||||
/* Provide an empty action here so bison will not complain about
|
/* Provide an empty action here so bison will not complain about
|
||||||
* incompatible types in the default action it normally would
|
* incompatible types in the default action it normally would
|
||||||
@ -2035,13 +2039,13 @@ case 13:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
#line 399 "grammar.y"
|
#line 400 "grammar.y"
|
||||||
{
|
{
|
||||||
/* empty */
|
/* empty */
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
#line 406 "grammar.y"
|
#line 407 "grammar.y"
|
||||||
{
|
{
|
||||||
#if OPT_LINTLIBRARY
|
#if OPT_LINTLIBRARY
|
||||||
if (types_out && want_typedef()) {
|
if (types_out && want_typedef()) {
|
||||||
@ -2054,7 +2058,7 @@ case 15:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
#line 417 "grammar.y"
|
#line 418 "grammar.y"
|
||||||
{
|
{
|
||||||
if (func_params != NULL) {
|
if (func_params != NULL) {
|
||||||
set_param_types(func_params, &yystack.l_mark[-2].decl_spec, &yystack.l_mark[-1].decl_list);
|
set_param_types(func_params, &yystack.l_mark[-2].decl_spec, &yystack.l_mark[-1].decl_list);
|
||||||
@ -2070,32 +2074,32 @@ case 16:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
#line 431 "grammar.y"
|
#line 432 "grammar.y"
|
||||||
{
|
{
|
||||||
cur_decl_spec_flags = yystack.l_mark[0].decl_spec.flags;
|
cur_decl_spec_flags = yystack.l_mark[0].decl_spec.flags;
|
||||||
free_decl_spec(&yystack.l_mark[0].decl_spec);
|
free_decl_spec(&yystack.l_mark[0].decl_spec);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
#line 436 "grammar.y"
|
#line 437 "grammar.y"
|
||||||
{
|
{
|
||||||
end_typedef();
|
end_typedef();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 19:
|
case 19:
|
||||||
#line 443 "grammar.y"
|
#line 444 "grammar.y"
|
||||||
{
|
{
|
||||||
begin_typedef();
|
begin_typedef();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
#line 447 "grammar.y"
|
#line 448 "grammar.y"
|
||||||
{
|
{
|
||||||
begin_typedef();
|
begin_typedef();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 23:
|
case 23:
|
||||||
#line 459 "grammar.y"
|
#line 460 "grammar.y"
|
||||||
{
|
{
|
||||||
int flags = cur_decl_spec_flags;
|
int flags = cur_decl_spec_flags;
|
||||||
|
|
||||||
@ -2109,7 +2113,7 @@ case 23:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 24:
|
case 24:
|
||||||
#line 471 "grammar.y"
|
#line 472 "grammar.y"
|
||||||
{
|
{
|
||||||
int flags = cur_decl_spec_flags;
|
int flags = cur_decl_spec_flags;
|
||||||
|
|
||||||
@ -2120,7 +2124,7 @@ case 24:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 25:
|
case 25:
|
||||||
#line 483 "grammar.y"
|
#line 484 "grammar.y"
|
||||||
{
|
{
|
||||||
check_untagged(&yystack.l_mark[-1].decl_spec);
|
check_untagged(&yystack.l_mark[-1].decl_spec);
|
||||||
if (yystack.l_mark[0].declarator->func_def == FUNC_NONE) {
|
if (yystack.l_mark[0].declarator->func_def == FUNC_NONE) {
|
||||||
@ -2133,7 +2137,7 @@ case 25:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 26:
|
case 26:
|
||||||
#line 494 "grammar.y"
|
#line 495 "grammar.y"
|
||||||
{
|
{
|
||||||
/* If we're converting to K&R and we've got a nominally K&R
|
/* If we're converting to K&R and we've got a nominally K&R
|
||||||
* function which has a parameter which is ANSI (i.e., a prototyped
|
* function which has a parameter which is ANSI (i.e., a prototyped
|
||||||
@ -2159,7 +2163,7 @@ case 26:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 28:
|
case 28:
|
||||||
#line 519 "grammar.y"
|
#line 520 "grammar.y"
|
||||||
{
|
{
|
||||||
if (yystack.l_mark[0].declarator->func_def == FUNC_NONE) {
|
if (yystack.l_mark[0].declarator->func_def == FUNC_NONE) {
|
||||||
yyerror("syntax error");
|
yyerror("syntax error");
|
||||||
@ -2171,7 +2175,7 @@ case 28:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 29:
|
case 29:
|
||||||
#line 529 "grammar.y"
|
#line 530 "grammar.y"
|
||||||
{
|
{
|
||||||
DeclSpec decl_spec;
|
DeclSpec decl_spec;
|
||||||
|
|
||||||
@ -2189,7 +2193,7 @@ case 29:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 36:
|
case 36:
|
||||||
#line 560 "grammar.y"
|
#line 561 "grammar.y"
|
||||||
{
|
{
|
||||||
join_decl_specs(&yyval.decl_spec, &yystack.l_mark[-1].decl_spec, &yystack.l_mark[0].decl_spec);
|
join_decl_specs(&yyval.decl_spec, &yystack.l_mark[-1].decl_spec, &yystack.l_mark[0].decl_spec);
|
||||||
free(yystack.l_mark[-1].decl_spec.text);
|
free(yystack.l_mark[-1].decl_spec.text);
|
||||||
@ -2197,115 +2201,115 @@ case 36:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 40:
|
case 40:
|
||||||
#line 575 "grammar.y"
|
#line 576 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 41:
|
case 41:
|
||||||
#line 579 "grammar.y"
|
#line 580 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_EXTERN);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_EXTERN);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 42:
|
case 42:
|
||||||
#line 583 "grammar.y"
|
#line 584 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 43:
|
case 43:
|
||||||
#line 587 "grammar.y"
|
#line 588 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_STATIC);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_STATIC);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 44:
|
case 44:
|
||||||
#line 591 "grammar.y"
|
#line 592 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_INLINE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_INLINE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 45:
|
case 45:
|
||||||
#line 595 "grammar.y"
|
#line 596 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_JUNK);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_JUNK);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 46:
|
case 46:
|
||||||
#line 602 "grammar.y"
|
#line 603 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_CHAR);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_CHAR);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 47:
|
case 47:
|
||||||
#line 606 "grammar.y"
|
#line 607 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 48:
|
case 48:
|
||||||
#line 610 "grammar.y"
|
#line 611 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_FLOAT);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_FLOAT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 49:
|
case 49:
|
||||||
#line 614 "grammar.y"
|
#line 615 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 50:
|
case 50:
|
||||||
#line 618 "grammar.y"
|
#line 619 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 51:
|
case 51:
|
||||||
#line 622 "grammar.y"
|
#line 623 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_SHORT);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_SHORT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 52:
|
case 52:
|
||||||
#line 626 "grammar.y"
|
#line 627 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 53:
|
case 53:
|
||||||
#line 630 "grammar.y"
|
#line 631 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 54:
|
case 54:
|
||||||
#line 634 "grammar.y"
|
#line 635 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 55:
|
case 55:
|
||||||
#line 638 "grammar.y"
|
#line 639 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_CHAR);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_CHAR);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 56:
|
case 56:
|
||||||
#line 642 "grammar.y"
|
#line 643 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 57:
|
case 57:
|
||||||
#line 646 "grammar.y"
|
#line 647 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 58:
|
case 58:
|
||||||
#line 650 "grammar.y"
|
#line 651 "grammar.y"
|
||||||
{
|
{
|
||||||
Symbol *s;
|
Symbol *s;
|
||||||
s = find_symbol(typedef_names, yystack.l_mark[0].text.text);
|
s = find_symbol(typedef_names, yystack.l_mark[0].text.text);
|
||||||
@ -2314,13 +2318,13 @@ case 58:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 61:
|
case 61:
|
||||||
#line 662 "grammar.y"
|
#line 663 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 62:
|
case 62:
|
||||||
#line 666 "grammar.y"
|
#line 667 "grammar.y"
|
||||||
{
|
{
|
||||||
/* This rule allows the <pointer> nonterminal to scan #define
|
/* This rule allows the <pointer> nonterminal to scan #define
|
||||||
* names as if they were type modifiers.
|
* names as if they were type modifiers.
|
||||||
@ -2332,56 +2336,56 @@ case 62:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 63:
|
case 63:
|
||||||
#line 679 "grammar.y"
|
#line 680 "grammar.y"
|
||||||
{
|
{
|
||||||
char *s;
|
char *s;
|
||||||
if ((s = implied_typedef()) == 0)
|
if ((s = implied_typedef()) == 0)
|
||||||
(void)sprintf(s = buf, "%s %s", yystack.l_mark[-2].text.text, yystack.l_mark[-1].text.text);
|
(void)sprintf(s = buf, "%.*s %.*s", TEXT_LEN, yystack.l_mark[-2].text.text, TEXT_LEN, yystack.l_mark[-1].text.text);
|
||||||
new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-2].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-2].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 64:
|
case 64:
|
||||||
#line 686 "grammar.y"
|
#line 687 "grammar.y"
|
||||||
{
|
{
|
||||||
char *s;
|
char *s;
|
||||||
if ((s = implied_typedef()) == 0)
|
if ((s = implied_typedef()) == 0)
|
||||||
(void)sprintf(s = buf, "%s {}", yystack.l_mark[-1].text.text);
|
(void)sprintf(s = buf, "%.*s {}", TEXT_LEN, yystack.l_mark[-1].text.text);
|
||||||
new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-1].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-1].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 65:
|
case 65:
|
||||||
#line 693 "grammar.y"
|
#line 694 "grammar.y"
|
||||||
{
|
{
|
||||||
(void)sprintf(buf, "%s %s", yystack.l_mark[-1].text.text, yystack.l_mark[0].text.text);
|
(void)sprintf(buf, "%.*s %.*s", TEXT_LEN, yystack.l_mark[-1].text.text, TEXT_LEN, yystack.l_mark[0].text.text);
|
||||||
new_decl_spec(&yyval.decl_spec, buf, yystack.l_mark[-1].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, buf, yystack.l_mark[-1].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 66:
|
case 66:
|
||||||
#line 701 "grammar.y"
|
#line 702 "grammar.y"
|
||||||
{
|
{
|
||||||
imply_typedef(yyval.text.text);
|
imply_typedef(yyval.text.text);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 67:
|
case 67:
|
||||||
#line 705 "grammar.y"
|
#line 706 "grammar.y"
|
||||||
{
|
{
|
||||||
imply_typedef(yyval.text.text);
|
imply_typedef(yyval.text.text);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 68:
|
case 68:
|
||||||
#line 712 "grammar.y"
|
#line 713 "grammar.y"
|
||||||
{
|
{
|
||||||
new_decl_list(&yyval.decl_list, yystack.l_mark[0].declarator);
|
new_decl_list(&yyval.decl_list, yystack.l_mark[0].declarator);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 69:
|
case 69:
|
||||||
#line 716 "grammar.y"
|
#line 717 "grammar.y"
|
||||||
{
|
{
|
||||||
add_decl_list(&yyval.decl_list, &yystack.l_mark[-2].decl_list, yystack.l_mark[0].declarator);
|
add_decl_list(&yyval.decl_list, &yystack.l_mark[-2].decl_list, yystack.l_mark[0].declarator);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 70:
|
case 70:
|
||||||
#line 723 "grammar.y"
|
#line 724 "grammar.y"
|
||||||
{
|
{
|
||||||
if (yystack.l_mark[0].declarator->func_def != FUNC_NONE && func_params == NULL &&
|
if (yystack.l_mark[0].declarator->func_def != FUNC_NONE && func_params == NULL &&
|
||||||
func_style == FUNC_TRADITIONAL && cur_file->convert) {
|
func_style == FUNC_TRADITIONAL && cur_file->convert) {
|
||||||
@ -2392,7 +2396,7 @@ case 70:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 71:
|
case 71:
|
||||||
#line 732 "grammar.y"
|
#line 733 "grammar.y"
|
||||||
{
|
{
|
||||||
if (yystack.l_mark[-1].declarator->func_def != FUNC_NONE && func_params == NULL &&
|
if (yystack.l_mark[-1].declarator->func_def != FUNC_NONE && func_params == NULL &&
|
||||||
func_style == FUNC_TRADITIONAL && cur_file->convert) {
|
func_style == FUNC_TRADITIONAL && cur_file->convert) {
|
||||||
@ -2402,42 +2406,42 @@ case 71:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 73:
|
case 73:
|
||||||
#line 744 "grammar.y"
|
#line 745 "grammar.y"
|
||||||
{
|
{
|
||||||
char *s;
|
char *s;
|
||||||
if ((s = implied_typedef()) == 0)
|
if ((s = implied_typedef()) == 0)
|
||||||
(void)sprintf(s = buf, "enum %s", yystack.l_mark[-1].text.text);
|
(void)sprintf(s = buf, "enum %.*s", TEXT_LEN, yystack.l_mark[-1].text.text);
|
||||||
new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-2].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-2].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 74:
|
case 74:
|
||||||
#line 751 "grammar.y"
|
#line 752 "grammar.y"
|
||||||
{
|
{
|
||||||
char *s;
|
char *s;
|
||||||
if ((s = implied_typedef()) == 0)
|
if ((s = implied_typedef()) == 0)
|
||||||
(void)sprintf(s = buf, "%s {}", yystack.l_mark[-1].text.text);
|
(void)sprintf(s = buf, "%.*s {}", TEXT_LEN, yystack.l_mark[-1].text.text);
|
||||||
new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-1].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, s, yystack.l_mark[-1].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 75:
|
case 75:
|
||||||
#line 758 "grammar.y"
|
#line 759 "grammar.y"
|
||||||
{
|
{
|
||||||
(void)sprintf(buf, "enum %s", yystack.l_mark[0].text.text);
|
(void)sprintf(buf, "enum %.*s", TEXT_LEN, yystack.l_mark[0].text.text);
|
||||||
new_decl_spec(&yyval.decl_spec, buf, yystack.l_mark[-1].text.begin, DS_NONE);
|
new_decl_spec(&yyval.decl_spec, buf, yystack.l_mark[-1].text.begin, DS_NONE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 76:
|
case 76:
|
||||||
#line 766 "grammar.y"
|
#line 767 "grammar.y"
|
||||||
{
|
{
|
||||||
imply_typedef("enum");
|
imply_typedef("enum");
|
||||||
yyval.text = yystack.l_mark[0].text;
|
yyval.text = yystack.l_mark[0].text;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 79:
|
case 79:
|
||||||
#line 779 "grammar.y"
|
#line 780 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = yystack.l_mark[0].declarator;
|
yyval.declarator = yystack.l_mark[0].declarator;
|
||||||
(void)sprintf(buf, "%s%s", yystack.l_mark[-1].text.text, yyval.declarator->text);
|
(void)sprintf(buf, "%.*s%.*s", TEXT_LEN, yystack.l_mark[-1].text.text, TEXT_LEN, yyval.declarator->text);
|
||||||
free(yyval.declarator->text);
|
free(yyval.declarator->text);
|
||||||
yyval.declarator->text = xstrdup(buf);
|
yyval.declarator->text = xstrdup(buf);
|
||||||
yyval.declarator->begin = yystack.l_mark[-1].text.begin;
|
yyval.declarator->begin = yystack.l_mark[-1].text.begin;
|
||||||
@ -2445,32 +2449,32 @@ case 79:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 81:
|
case 81:
|
||||||
#line 792 "grammar.y"
|
#line 793 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = new_declarator(yystack.l_mark[0].text.text, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin);
|
yyval.declarator = new_declarator(yystack.l_mark[0].text.text, yystack.l_mark[0].text.text, yystack.l_mark[0].text.begin);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 82:
|
case 82:
|
||||||
#line 796 "grammar.y"
|
#line 797 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = yystack.l_mark[-1].declarator;
|
yyval.declarator = yystack.l_mark[-1].declarator;
|
||||||
(void)sprintf(buf, "(%s)", yyval.declarator->text);
|
(void)sprintf(buf, "(%.*s)", TEXT_LEN, yyval.declarator->text);
|
||||||
free(yyval.declarator->text);
|
free(yyval.declarator->text);
|
||||||
yyval.declarator->text = xstrdup(buf);
|
yyval.declarator->text = xstrdup(buf);
|
||||||
yyval.declarator->begin = yystack.l_mark[-2].text.begin;
|
yyval.declarator->begin = yystack.l_mark[-2].text.begin;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 83:
|
case 83:
|
||||||
#line 804 "grammar.y"
|
#line 805 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = yystack.l_mark[-1].declarator;
|
yyval.declarator = yystack.l_mark[-1].declarator;
|
||||||
(void)sprintf(buf, "%s%s", yyval.declarator->text, yystack.l_mark[0].text.text);
|
(void)sprintf(buf, "%.*s%.*s", TEXT_LEN, yyval.declarator->text, TEXT_LEN, yystack.l_mark[0].text.text);
|
||||||
free(yyval.declarator->text);
|
free(yyval.declarator->text);
|
||||||
yyval.declarator->text = xstrdup(buf);
|
yyval.declarator->text = xstrdup(buf);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 84:
|
case 84:
|
||||||
#line 811 "grammar.y"
|
#line 812 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = new_declarator("%s()", yystack.l_mark[-3].declarator->name, yystack.l_mark[-3].declarator->begin);
|
yyval.declarator = new_declarator("%s()", yystack.l_mark[-3].declarator->name, yystack.l_mark[-3].declarator->begin);
|
||||||
yyval.declarator->params = yystack.l_mark[-1].param_list;
|
yyval.declarator->params = yystack.l_mark[-1].param_list;
|
||||||
@ -2480,7 +2484,7 @@ case 84:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 85:
|
case 85:
|
||||||
#line 819 "grammar.y"
|
#line 820 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = new_declarator("%s()", yystack.l_mark[-3].declarator->name, yystack.l_mark[-3].declarator->begin);
|
yyval.declarator = new_declarator("%s()", yystack.l_mark[-3].declarator->name, yystack.l_mark[-3].declarator->begin);
|
||||||
yyval.declarator->params = yystack.l_mark[-1].param_list;
|
yyval.declarator->params = yystack.l_mark[-1].param_list;
|
||||||
@ -2490,28 +2494,28 @@ case 85:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 86:
|
case 86:
|
||||||
#line 830 "grammar.y"
|
#line 831 "grammar.y"
|
||||||
{
|
{
|
||||||
(void)sprintf(yyval.text.text, "*%s", yystack.l_mark[0].text.text);
|
(void)sprintf(yyval.text.text, "*%.*s", TEXT_LEN, yystack.l_mark[0].text.text);
|
||||||
yyval.text.begin = yystack.l_mark[-1].text.begin;
|
yyval.text.begin = yystack.l_mark[-1].text.begin;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 87:
|
case 87:
|
||||||
#line 835 "grammar.y"
|
#line 836 "grammar.y"
|
||||||
{
|
{
|
||||||
(void)sprintf(yyval.text.text, "*%s%s", yystack.l_mark[-1].text.text, yystack.l_mark[0].text.text);
|
(void)sprintf(yyval.text.text, "*%.*s%.*s", TEXT_LEN, yystack.l_mark[-1].text.text, TEXT_LEN, yystack.l_mark[0].text.text);
|
||||||
yyval.text.begin = yystack.l_mark[-2].text.begin;
|
yyval.text.begin = yystack.l_mark[-2].text.begin;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 88:
|
case 88:
|
||||||
#line 843 "grammar.y"
|
#line 844 "grammar.y"
|
||||||
{
|
{
|
||||||
strcpy(yyval.text.text, "");
|
strcpy(yyval.text.text, "");
|
||||||
yyval.text.begin = 0L;
|
yyval.text.begin = 0L;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 90:
|
case 90:
|
||||||
#line 852 "grammar.y"
|
#line 853 "grammar.y"
|
||||||
{
|
{
|
||||||
(void)sprintf(yyval.text.text, "%s ", yystack.l_mark[0].decl_spec.text);
|
(void)sprintf(yyval.text.text, "%s ", yystack.l_mark[0].decl_spec.text);
|
||||||
yyval.text.begin = yystack.l_mark[0].decl_spec.begin;
|
yyval.text.begin = yystack.l_mark[0].decl_spec.begin;
|
||||||
@ -2519,132 +2523,132 @@ case 90:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 91:
|
case 91:
|
||||||
#line 858 "grammar.y"
|
#line 859 "grammar.y"
|
||||||
{
|
{
|
||||||
(void)sprintf(yyval.text.text, "%s%s ", yystack.l_mark[-1].text.text, yystack.l_mark[0].decl_spec.text);
|
(void)sprintf(yyval.text.text, "%.*s%.*s ", TEXT_LEN, yystack.l_mark[-1].text.text, TEXT_LEN, yystack.l_mark[0].decl_spec.text);
|
||||||
yyval.text.begin = yystack.l_mark[-1].text.begin;
|
yyval.text.begin = yystack.l_mark[-1].text.begin;
|
||||||
free(yystack.l_mark[0].decl_spec.text);
|
free(yystack.l_mark[0].decl_spec.text);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 93:
|
case 93:
|
||||||
#line 868 "grammar.y"
|
#line 869 "grammar.y"
|
||||||
{
|
{
|
||||||
add_ident_list(&yyval.param_list, &yystack.l_mark[-2].param_list, "...");
|
add_ident_list(&yyval.param_list, &yystack.l_mark[-2].param_list, "...");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 94:
|
case 94:
|
||||||
#line 875 "grammar.y"
|
#line 876 "grammar.y"
|
||||||
{
|
{
|
||||||
new_param_list(&yyval.param_list, yystack.l_mark[0].parameter);
|
new_param_list(&yyval.param_list, yystack.l_mark[0].parameter);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 95:
|
case 95:
|
||||||
#line 879 "grammar.y"
|
#line 880 "grammar.y"
|
||||||
{
|
{
|
||||||
add_param_list(&yyval.param_list, &yystack.l_mark[-2].param_list, yystack.l_mark[0].parameter);
|
add_param_list(&yyval.param_list, &yystack.l_mark[-2].param_list, yystack.l_mark[0].parameter);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 96:
|
case 96:
|
||||||
#line 886 "grammar.y"
|
#line 887 "grammar.y"
|
||||||
{
|
{
|
||||||
check_untagged(&yystack.l_mark[-1].decl_spec);
|
check_untagged(&yystack.l_mark[-1].decl_spec);
|
||||||
yyval.parameter = new_parameter(&yystack.l_mark[-1].decl_spec, yystack.l_mark[0].declarator);
|
yyval.parameter = new_parameter(&yystack.l_mark[-1].decl_spec, yystack.l_mark[0].declarator);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 97:
|
case 97:
|
||||||
#line 891 "grammar.y"
|
#line 892 "grammar.y"
|
||||||
{
|
{
|
||||||
check_untagged(&yystack.l_mark[-1].decl_spec);
|
check_untagged(&yystack.l_mark[-1].decl_spec);
|
||||||
yyval.parameter = new_parameter(&yystack.l_mark[-1].decl_spec, yystack.l_mark[0].declarator);
|
yyval.parameter = new_parameter(&yystack.l_mark[-1].decl_spec, yystack.l_mark[0].declarator);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 98:
|
case 98:
|
||||||
#line 896 "grammar.y"
|
#line 897 "grammar.y"
|
||||||
{
|
{
|
||||||
check_untagged(&yystack.l_mark[0].decl_spec);
|
check_untagged(&yystack.l_mark[0].decl_spec);
|
||||||
yyval.parameter = new_parameter(&yystack.l_mark[0].decl_spec, (Declarator *)0);
|
yyval.parameter = new_parameter(&yystack.l_mark[0].decl_spec, (Declarator *)0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 99:
|
case 99:
|
||||||
#line 904 "grammar.y"
|
#line 905 "grammar.y"
|
||||||
{
|
{
|
||||||
new_ident_list(&yyval.param_list);
|
new_ident_list(&yyval.param_list);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 101:
|
case 101:
|
||||||
#line 912 "grammar.y"
|
#line 913 "grammar.y"
|
||||||
{
|
{
|
||||||
new_ident_list(&yyval.param_list);
|
new_ident_list(&yyval.param_list);
|
||||||
add_ident_list(&yyval.param_list, &yyval.param_list, yystack.l_mark[0].text.text);
|
add_ident_list(&yyval.param_list, &yyval.param_list, yystack.l_mark[0].text.text);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 102:
|
case 102:
|
||||||
#line 917 "grammar.y"
|
#line 918 "grammar.y"
|
||||||
{
|
{
|
||||||
add_ident_list(&yyval.param_list, &yystack.l_mark[-2].param_list, yystack.l_mark[0].text.text);
|
add_ident_list(&yyval.param_list, &yystack.l_mark[-2].param_list, yystack.l_mark[0].text.text);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 103:
|
case 103:
|
||||||
#line 924 "grammar.y"
|
#line 925 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.text = yystack.l_mark[0].text;
|
yyval.text = yystack.l_mark[0].text;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 104:
|
case 104:
|
||||||
#line 928 "grammar.y"
|
#line 929 "grammar.y"
|
||||||
{
|
{
|
||||||
#if OPT_LINTLIBRARY
|
#if OPT_LINTLIBRARY
|
||||||
if (lintLibrary()) { /* Lint doesn't grok C++ ref variables */
|
if (lintLibrary()) { /* Lint doesn't grok C++ ref variables */
|
||||||
yyval.text = yystack.l_mark[0].text;
|
yyval.text = yystack.l_mark[0].text;
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
(void)sprintf(yyval.text.text, "&%s", yystack.l_mark[0].text.text);
|
(void)sprintf(yyval.text.text, "&%.*s", TEXT_LEN, yystack.l_mark[0].text.text);
|
||||||
yyval.text.begin = yystack.l_mark[-1].text.begin;
|
yyval.text.begin = yystack.l_mark[-1].text.begin;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 105:
|
case 105:
|
||||||
#line 941 "grammar.y"
|
#line 942 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = new_declarator(yystack.l_mark[0].text.text, "", yystack.l_mark[0].text.begin);
|
yyval.declarator = new_declarator(yystack.l_mark[0].text.text, "", yystack.l_mark[0].text.begin);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 106:
|
case 106:
|
||||||
#line 945 "grammar.y"
|
#line 946 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = yystack.l_mark[0].declarator;
|
yyval.declarator = yystack.l_mark[0].declarator;
|
||||||
(void)sprintf(buf, "%s%s", yystack.l_mark[-1].text.text, yyval.declarator->text);
|
(void)sprintf(buf, "%.*s%.*s", TEXT_LEN, yystack.l_mark[-1].text.text, TEXT_LEN, yyval.declarator->text);
|
||||||
free(yyval.declarator->text);
|
free(yyval.declarator->text);
|
||||||
yyval.declarator->text = xstrdup(buf);
|
yyval.declarator->text = xstrdup(buf);
|
||||||
yyval.declarator->begin = yystack.l_mark[-1].text.begin;
|
yyval.declarator->begin = yystack.l_mark[-1].text.begin;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 108:
|
case 108:
|
||||||
#line 957 "grammar.y"
|
#line 958 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = yystack.l_mark[-1].declarator;
|
yyval.declarator = yystack.l_mark[-1].declarator;
|
||||||
(void)sprintf(buf, "(%s)", yyval.declarator->text);
|
(void)sprintf(buf, "(%.*s)", TEXT_LEN, yyval.declarator->text);
|
||||||
free(yyval.declarator->text);
|
free(yyval.declarator->text);
|
||||||
yyval.declarator->text = xstrdup(buf);
|
yyval.declarator->text = xstrdup(buf);
|
||||||
yyval.declarator->begin = yystack.l_mark[-2].text.begin;
|
yyval.declarator->begin = yystack.l_mark[-2].text.begin;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 109:
|
case 109:
|
||||||
#line 965 "grammar.y"
|
#line 966 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = yystack.l_mark[-1].declarator;
|
yyval.declarator = yystack.l_mark[-1].declarator;
|
||||||
(void)sprintf(buf, "%s%s", yyval.declarator->text, yystack.l_mark[0].text.text);
|
(void)sprintf(buf, "%.*s%.*s", TEXT_LEN, yyval.declarator->text, TEXT_LEN, yystack.l_mark[0].text.text);
|
||||||
free(yyval.declarator->text);
|
free(yyval.declarator->text);
|
||||||
yyval.declarator->text = xstrdup(buf);
|
yyval.declarator->text = xstrdup(buf);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 110:
|
case 110:
|
||||||
#line 972 "grammar.y"
|
#line 973 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = new_declarator(yystack.l_mark[0].text.text, "", yystack.l_mark[0].text.begin);
|
yyval.declarator = new_declarator(yystack.l_mark[0].text.text, "", yystack.l_mark[0].text.begin);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 111:
|
case 111:
|
||||||
#line 976 "grammar.y"
|
#line 977 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = new_declarator("%s()", "", yystack.l_mark[-3].declarator->begin);
|
yyval.declarator = new_declarator("%s()", "", yystack.l_mark[-3].declarator->begin);
|
||||||
yyval.declarator->params = yystack.l_mark[-1].param_list;
|
yyval.declarator->params = yystack.l_mark[-1].param_list;
|
||||||
@ -2654,7 +2658,7 @@ case 111:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 112:
|
case 112:
|
||||||
#line 984 "grammar.y"
|
#line 985 "grammar.y"
|
||||||
{
|
{
|
||||||
yyval.declarator = new_declarator("%s()", "", yystack.l_mark[-2].declarator->begin);
|
yyval.declarator = new_declarator("%s()", "", yystack.l_mark[-2].declarator->begin);
|
||||||
yyval.declarator->func_stack = yystack.l_mark[-2].declarator;
|
yyval.declarator->func_stack = yystack.l_mark[-2].declarator;
|
||||||
@ -2663,7 +2667,7 @@ case 112:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 113:
|
case 113:
|
||||||
#line 991 "grammar.y"
|
#line 992 "grammar.y"
|
||||||
{
|
{
|
||||||
Declarator *d;
|
Declarator *d;
|
||||||
|
|
||||||
@ -2676,7 +2680,7 @@ case 113:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 114:
|
case 114:
|
||||||
#line 1002 "grammar.y"
|
#line 1003 "grammar.y"
|
||||||
{
|
{
|
||||||
Declarator *d;
|
Declarator *d;
|
||||||
|
|
||||||
@ -2687,7 +2691,7 @@ case 114:
|
|||||||
yyval.declarator->func_def = FUNC_ANSI;
|
yyval.declarator->func_def = FUNC_ANSI;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#line 2691 "grammar.tab.c"
|
#line 2695 "grammar.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2742,12 +2746,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
YACC: error message
|
||||||
|
Usage: YACC [options] filename
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-b file_prefix set filename prefix (default "y.")
|
||||||
|
-B create a backtracking parser
|
||||||
|
-d write definitions (.tab.h)
|
||||||
|
-H defines_file write definitions to defines_file
|
||||||
|
-i write interface (y.tab.i)
|
||||||
|
-g write a graphical description
|
||||||
|
-l suppress #line directives
|
||||||
|
-L enable position processing, e.g., "%locations"
|
||||||
|
-o output_file (default ".tab.c")
|
||||||
|
-p symbol_prefix set symbol prefix (default "yy")
|
||||||
|
-P create a reentrant parser, e.g., "%pure-parser"
|
||||||
|
-r produce separate code and table files (y.code.c)
|
||||||
|
-s suppress #define's for quoted names in %token lines
|
||||||
|
-t add debugging support
|
||||||
|
-v write description (y.output)
|
||||||
|
-V show version information and exit
|
@ -1,18 +0,0 @@
|
|||||||
Usage: YACC [options] filename
|
|
||||||
|
|
||||||
Options:
|
|
||||||
-b file_prefix set filename prefix (default "y.")
|
|
||||||
-B create a backtracking parser
|
|
||||||
-d write definitions (.tab.h)
|
|
||||||
-i write interface (y.tab.i)
|
|
||||||
-g write a graphical description
|
|
||||||
-l suppress #line directives
|
|
||||||
-L enable position processing, e.g., "%locations"
|
|
||||||
-o output_file (default ".tab.c")
|
|
||||||
-p symbol_prefix set symbol prefix (default "yy")
|
|
||||||
-P create a reentrant parser, e.g., "%pure-parser"
|
|
||||||
-r produce separate code and table files (y.code.c)
|
|
||||||
-s suppress #define's for quoted names in %token lines
|
|
||||||
-t add debugging support
|
|
||||||
-v write description (y.output)
|
|
||||||
-V show version information and exit
|
|
@ -171,7 +171,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define INTEGER 260
|
#define INTEGER 260
|
||||||
#define NAME 261
|
#define NAME 261
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT inherit0_lhs[] = { -1,
|
static const YYINT inherit0_lhs[] = { -1,
|
||||||
0, 0, 1, 1, 2, 2, 3, 3, 5, 6,
|
0, 0, 1, 1, 2, 2, 3, 3, 5, 6,
|
||||||
4,
|
4,
|
||||||
@ -261,13 +261,16 @@ static const char *const inherit0_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -280,17 +283,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -389,7 +392,7 @@ static YYINT *yylexemes = 0;
|
|||||||
|
|
||||||
extern int YYLEX_DECL();
|
extern int YYLEX_DECL();
|
||||||
extern void YYERROR_DECL();
|
extern void YYERROR_DECL();
|
||||||
#line 393 "inherit0.tab.c"
|
#line 396 "inherit0.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -528,7 +531,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -595,10 +598,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -709,7 +712,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -919,7 +922,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -948,7 +951,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -964,7 +967,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1050,10 +1053,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1103,7 +1106,7 @@ case 11:
|
|||||||
#line 43 "inherit0.y"
|
#line 43 "inherit0.y"
|
||||||
{ yyval = yystack.l_mark[0]; }
|
{ yyval = yystack.l_mark[0]; }
|
||||||
break;
|
break;
|
||||||
#line 1107 "inherit0.tab.c"
|
#line 1110 "inherit0.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1158,12 +1161,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
@ -192,7 +192,7 @@ extern int YYPARSE_DECL();
|
|||||||
#define INTEGER 260
|
#define INTEGER 260
|
||||||
#define NAME 261
|
#define NAME 261
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
typedef short YYINT;
|
typedef int YYINT;
|
||||||
static const YYINT inherit1_lhs[] = { -1,
|
static const YYINT inherit1_lhs[] = { -1,
|
||||||
0, 0, 3, 3, 4, 4, 1, 1, 5, 6,
|
0, 0, 3, 3, 4, 4, 1, 1, 5, 6,
|
||||||
2,
|
2,
|
||||||
@ -282,13 +282,16 @@ static const char *const inherit1_rule[] = {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
int yydebug;
|
int yydebug;
|
||||||
int yynerrs;
|
#endif
|
||||||
|
|
||||||
int yyerrflag;
|
int yyerrflag;
|
||||||
int yychar;
|
int yychar;
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
YYSTYPE yylval;
|
YYSTYPE yylval;
|
||||||
|
int yynerrs;
|
||||||
|
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyloc; /* position returned by actions */
|
YYLTYPE yyloc; /* position returned by actions */
|
||||||
YYLTYPE yylloc; /* position from the lexer */
|
YYLTYPE yylloc; /* position from the lexer */
|
||||||
@ -301,17 +304,17 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
if (n == 0) \
|
if (n == 0) \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[-1]).last_line; \
|
(loc).first_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).first_column = ((rhs)[-1]).last_column; \
|
(loc).first_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
(loc).last_line = ((rhs)[-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, 0).last_line; \
|
||||||
(loc).last_column = ((rhs)[-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, 0).last_column; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
(loc).first_line = ((rhs)[ 0 ]).first_line; \
|
(loc).first_line = YYRHSLOC(rhs, 1).first_line; \
|
||||||
(loc).first_column = ((rhs)[ 0 ]).first_column; \
|
(loc).first_column = YYRHSLOC(rhs, 1).first_column; \
|
||||||
(loc).last_line = ((rhs)[n-1]).last_line; \
|
(loc).last_line = YYRHSLOC(rhs, n).last_line; \
|
||||||
(loc).last_column = ((rhs)[n-1]).last_column; \
|
(loc).last_column = YYRHSLOC(rhs, n).last_column; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* YYLLOC_DEFAULT */
|
#endif /* YYLLOC_DEFAULT */
|
||||||
@ -410,7 +413,7 @@ static YYINT *yylexemes = 0;
|
|||||||
|
|
||||||
extern int YYLEX_DECL();
|
extern int YYLEX_DECL();
|
||||||
extern void YYERROR_DECL();
|
extern void YYERROR_DECL();
|
||||||
#line 414 "inherit1.tab.c"
|
#line 417 "inherit1.tab.c"
|
||||||
|
|
||||||
/* For use in generated program */
|
/* For use in generated program */
|
||||||
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
#define yydepth (int)(yystack.s_mark - yystack.s_base)
|
||||||
@ -549,7 +552,7 @@ YYPARSE_DECL()
|
|||||||
YYParseState *yyerrctx = NULL;
|
YYParseState *yyerrctx = NULL;
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
YYLTYPE yyerror_loc_range[2]; /* position of error start & end */
|
YYLTYPE yyerror_loc_range[3]; /* position of error start/end (0 unused) */
|
||||||
#endif
|
#endif
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
const char *yys;
|
const char *yys;
|
||||||
@ -616,10 +619,10 @@ YYPARSE_DECL()
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
yylvlim = yylvals + s;
|
yylvlim = yylvals + s;
|
||||||
@ -730,7 +733,7 @@ YYPARSE_DECL()
|
|||||||
/* If this is a first conflict in the stack, start saving lexemes */
|
/* If this is a first conflict in the stack, start saving lexemes */
|
||||||
if (!yylexemes)
|
if (!yylexemes)
|
||||||
{
|
{
|
||||||
yylexemes = malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
|
||||||
if (yylexemes == NULL) goto yyenomem;
|
if (yylexemes == NULL) goto yyenomem;
|
||||||
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
yylvals = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
|
||||||
if (yylvals == NULL) goto yyenomem;
|
if (yylvals == NULL) goto yyenomem;
|
||||||
@ -940,7 +943,7 @@ YYPARSE_DECL()
|
|||||||
|
|
||||||
YYERROR_CALL("syntax error");
|
YYERROR_CALL("syntax error");
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
|
yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !YYBTYACC
|
#if !YYBTYACC
|
||||||
@ -969,7 +972,7 @@ YYPARSE_DECL()
|
|||||||
*++yystack.l_mark = yylval;
|
*++yystack.l_mark = yylval;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* lookahead position is error end position */
|
/* lookahead position is error end position */
|
||||||
yyerror_loc_range[1] = yylloc;
|
yyerror_loc_range[2] = yylloc;
|
||||||
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
|
||||||
*++yystack.p_mark = yyloc;
|
*++yystack.p_mark = yyloc;
|
||||||
#endif
|
#endif
|
||||||
@ -985,7 +988,7 @@ YYPARSE_DECL()
|
|||||||
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
if (yystack.s_mark <= yystack.s_base) goto yyabort;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
/* the current TOS position is the error start position */
|
/* the current TOS position is the error start position */
|
||||||
yyerror_loc_range[0] = *yystack.p_mark;
|
yyerror_loc_range[1] = *yystack.p_mark;
|
||||||
#endif
|
#endif
|
||||||
#if defined(YYDESTRUCT_CALL)
|
#if defined(YYDESTRUCT_CALL)
|
||||||
#if YYBTYACC
|
#if YYBTYACC
|
||||||
@ -1071,10 +1074,10 @@ YYPARSE_DECL()
|
|||||||
if (!yytrial)
|
if (!yytrial)
|
||||||
#endif /* YYBTYACC */
|
#endif /* YYBTYACC */
|
||||||
{
|
{
|
||||||
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
|
YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
|
||||||
/* just in case YYERROR is invoked within the action, save
|
/* just in case YYERROR is invoked within the action, save
|
||||||
the start of the rhs as the error start position */
|
the start of the rhs as the error start position */
|
||||||
yyerror_loc_range[0] = yystack.p_mark[1-yym];
|
yyerror_loc_range[1] = yystack.p_mark[1-yym];
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1128,7 +1131,7 @@ case 11:
|
|||||||
#line 71 "inherit1.y"
|
#line 71 "inherit1.y"
|
||||||
{ yyval.nlist = yystack.l_mark[0].nlist; }
|
{ yyval.nlist = yystack.l_mark[0].nlist; }
|
||||||
break;
|
break;
|
||||||
#line 1132 "inherit1.tab.c"
|
#line 1135 "inherit1.tab.c"
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1183,12 +1186,12 @@ break;
|
|||||||
size_t s = (size_t) (yylvlim - yylvals);
|
size_t s = (size_t) (yylvlim - yylvals);
|
||||||
|
|
||||||
s += YYLVQUEUEGROWTH;
|
s += YYLVQUEUEGROWTH;
|
||||||
if ((yylexemes = realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
if ((yylvals = realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
if ((yylvals = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
|
||||||
if ((yylpsns = realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
if ((yylpsns = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
|
||||||
goto yyenomem;
|
goto yyenomem;
|
||||||
#endif
|
#endif
|
||||||
yylvp = yylve = yylvals + p;
|
yylvp = yylve = yylvals + p;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user