Commit Graph

5068 Commits

Author SHA1 Message Date
Akim Demaille
ca90437a61 glr: rename lex params
* data/glr.c (b4_lex_param): Rename as...
(b4_lex_formals): this, for consistency.
Provide arguments a name.
(LEX): Adjust.
2012-12-19 11:26:00 +01:00
Akim Demaille
ea45ade792 glr.c: move function declaration earlier
* data/glr.c (yypstack, yypdumpstack): Declare earlier, to make
it easier to call them from other functions.
2012-12-19 11:26:00 +01:00
Akim Demaille
f9f1b3ebbb %define variables: backward compatibility
* src/muscle-tab.c (muscle_percent_variable_update): Accept lex_symbol.
Reported by Roland Levillain.
2012-12-19 11:26:00 +01:00
Akim Demaille
ea9e670d72 diagnostics: improve -fcaret for list of accepted values
Instead of

  input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither'
   %define api.push_pull "neither"
           ^^^^^^^^^^^^^
  input.y:1.9-21:     accepted value: 'pull'
   %define api.push_pull "neither"
           ^^^^^^^^^^^^^
  input.y:1.9-21:     accepted value: 'push'
   %define api.push_pull "neither"
           ^^^^^^^^^^^^^
  input.y:1.9-21:     accepted value: 'both'
   %define api.push_pull "neither"
           ^^^^^^^^^^^^^

report

  input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither'
   %define api.push_pull "neither"
           ^^^^^^^^^^^^^
  input.y:1.9-21:     accepted value: 'pull'
  input.y:1.9-21:     accepted value: 'push'
  input.y:1.9-21:     accepted value: 'both'

* src/complain.h (no_caret): New.
* src/complain.c (error_message): Use it.
* src/muscle-tab.c (muscle_percent_define_check_values): Use it.
* src/scan-skel.l (flag): Ditto.
* tests/input.at: Adjust and check.
2012-12-16 15:16:42 +01:00
Akim Demaille
bcd80897f3 skeletons: simplify the handling of default api.location.type
* data/bison.m4 (b4_bison_locations_if): New.
* data/glr.cc, data/lalr1.cc: Use it.
2012-12-16 10:33:42 +01:00
Akim Demaille
50977317cd tests: address syntax-check failures
* cfg.mk: Ignore failures in timevar (uses GCC style configuration,
not gnulib's).
* doc/local.mk: Space changes.
* lib/main.c, tests/calc.at: Remove useless HAVE_ tests.
2012-12-16 10:33:42 +01:00
Akim Demaille
758f7cfc14 remove duplicate definitions
* src/system.h: here, inherited from a merge.
2012-12-15 17:21:07 +01:00
Akim Demaille
d42e695e53 doc: fix dependencies
* doc/local.mk: here.
2012-12-15 08:19:59 +01:00
Akim Demaille
a73aa764a1 doc: style fixes
* doc/bison.texi: Add a couple of missing @var and @code.
2012-12-14 17:37:54 +01:00
Theophile Ranquet
f039b51805 doc: fix build dependencies
Suggested by Nick Bowler
<http://lists.gnu.org/archive/html/bug-automake/2012-12/msg00001.html>

* doc/local.mk: Avoid overwriting Automake's rules.
2012-12-14 18:11:11 +01:00
Akim Demaille
b9278c7d17 Merge branch 'origin/maint'
* origin/maint:
  maint: credit Wojciech Polak
  maint: post-release administrivia
  version 2.7
  yacc.c: scope reduction
  tests: C90 compliance
  fix C90 compliance
  glr.c: scope reduction
  gnulib: update

Conflicts:
	NEWS
	gnulib
	src/scan-gram.l
	src/system.h
2012-12-14 13:58:04 +01:00
Theophile Ranquet
e96b1b2c45 symtab: add missing initializations
* src/symtab.c (semantic_type_new): Here.
2012-12-14 11:35:27 +01:00
Theophile Ranquet
ae9c90ba00 symtab: fix some leaks
* src/symlist.c (symbol_list_free): Deep free it.
* src/symtab.c (symbols_free, semantic_types_sorted): Free it too.
(symbols_do, sorted): Call by address.
2012-12-14 11:35:15 +01:00
Theophile Ranquet
be27db79a5 tests: remove use of PARSE_PARAM
* tests/header.at: Here.
2012-12-14 10:57:51 +01:00
Akim Demaille
2bd435c36c maint: credit Wojciech Polak
* NEWS, THANKS: He is the author of XML support (including XSLTs).
2012-12-13 09:29:18 +01:00
Akim Demaille
0a7b855930 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2012-12-12 16:23:44 +01:00
Akim Demaille
c13bb3484c version 2.7
* NEWS: Record release date.
v2.7
2012-12-12 16:07:46 +01:00
Akim Demaille
4b6d641913 yacc.c: scope reduction
* data/yacc.c (yysyntax_error): here.
2012-12-12 12:41:37 +01:00
Akim Demaille
bb990d3809 tests: C90 compliance
* tests/synclines.at: here.
2012-12-12 12:38:28 +01:00
Akim Demaille
1127a75a72 fix C90 compliance
* data/glr.c, src/graphviz.h, src/ielr.c, src/scan-gram.l,
* src/system.h, tests/actions.at, tests/glr-regression.at: Do not
use // comments.
Do not introduce variables after statements.
Provide "main" with a return value.
2012-12-12 11:44:39 +01:00
Akim Demaille
fc28638e1c glr.c: scope reduction
* data/glr.c (yyreportSyntaxError): Reduce the scope of yysize1 (now
yysz).
2012-12-12 11:28:24 +01:00
Akim Demaille
911537c30f gnulib: update 2012-12-12 08:42:54 +01:00
Theophile Ranquet
0906b12cd5 Merge remote-tracking branch 'origin/maint'
* origin/maint:
  news: prepare for forthcoming release
  doc: explain how mid-rule actions are translated
  error: use better locations for unused midrule values
  doc: various minor improvements and fixes
  tests: ignore more useless compiler warnings
  tests: be robust to C being compiled with a C++11 compiler
  build: beware of Clang++ not supporting POSIXLY_CORRECT
  maint: post-release administrivia
  version 2.6.90
  build: fix syntax-check error.
  cpp: simplify the Flex version checking macro
  news: improve the carets example and fix a typo
  cpp: improve the Flex version checking macro
  carets: improve the code
  maint: update news
  build: keep -Wmissing-declarations and -Wmissing-prototypes for modern GCCs
  build: drop -Wcast-qual
  gnulib: update

Conflicts:
	NEWS
	doc/Makefile.am
	doc/bison.texi
	gnulib
	src/reader.c
	tests/actions.at
	tests/atlocal.in
	tests/input.at
2012-12-10 17:01:55 +01:00
Akim Demaille
d4fe9e88f3 news: prepare for forthcoming release
* NEWS: Fill paragraph.
Reorder.
Update examples.
Remove line for 2.6.90.
2012-12-09 17:12:55 +01:00
Akim Demaille
be22823e78 doc: explain how mid-rule actions are translated
* doc/bison.texi (Actions in Mid-Rule): Mention and use named references.
Split into three subsections, among which...
(Mid-Rule Action Translation): this new section.
2012-12-09 16:49:58 +01:00
Akim Demaille
235892350f error: use better locations for unused midrule values
On

  %%
  exp: {;} {$$;} { $$ = $1; }

instead of reporting (with -fcaret -Wmidrule-value)

  midrule.y:2.6-8: warning: unset value: $$ [-Wmidrule-values]
   exp: {;} {$$;} { $$ = $1; }
        ^^^
  midrule.y:2.6-27: warning: unused value: $2 [-Wmidrule-values]
   exp: {;} {$$;} { $$ = $1; }
        ^^^^^^^^^^^^^^^^^^^^^^

report

  midrule.y:2.6-8: warning: unset value: $$
   exp: {;} {$$;} { $$ = $1; }
        ^^^
  midrule.y:2.10-14: warning: unused value: $2
   exp: {;} {$$;} { $$ = $1; }
            ^^^^^

* src/reader.c (grammar_rule_check): When warning about the value of a
midrule action, use the location of the midrule action instead of the
location of the rule.
the location of the part of the rule.
* tests/actions.at (Default %printer and %destructor for mid-rule values):
Adjust expectations
* tests/input.at (Unused values with default %destructor): Ditto.
(AT_CHECK_UNUSED_VALUES): Ditto.
And use -fcaret.
2012-12-09 16:24:20 +01:00
Akim Demaille
c949ada3da doc: various minor improvements and fixes
* doc/figs/example.dot, doc/figs/example.y: New.
* doc/bison.texi: Prefer "token" to TOKEN.
Use @group where appropriate.
Adjust with style changes in the output (State 0, not state 0).
Fix some @ref that were missing the third argument.
Fix some incorrect line numbers.
Use "nonterminal", not "non-terminal".
Fix overfull and underfull TeX hboxes.
Put the comments in the index.
Remove duplicate index entries.
Fuse glossary entries where appropriate.
(Understanding): Improve the continuity between sections.
Use example.dot to show the whole graph.
* doc/Makefile.am: Adjust.
2012-12-09 16:24:19 +01:00
Akim Demaille
d4dcde2b75 tests: ignore more useless compiler warnings
* tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore complains about
using c++ to compile C.
2012-12-09 16:24:19 +01:00
Akim Demaille
c8e966e272 tests: be robust to C being compiled with a C++11 compiler
* tests/glr-regression.at: Use YY_NULL instead of NULL.
Comment changes.
2012-12-09 16:03:19 +01:00
Akim Demaille
d4728d92c7 build: beware of Clang++ not supporting POSIXLY_CORRECT
* m4/c-working.m4 (BISON_LANG_COMPILER_POSIXLY_CORRECT): New.
(BISON_C_COMPILER_POSIXLY_CORRECT): Use it.
For consistency with C++, also define BISON_C_WORKS.
* m4/cxx.m4 (BISON_CXX_COMPILER_POSIXLY_CORRECT): New.
* configure.ac: Use it.
* tests/atlocal.in: Get its result.
Propagate properly CXX values when used to compile C.
When POSIXLY_CORRECT, adjust BISON_C_WORKS and BISON_CXX_WORKS.
* tests/local.at (AT_COMPILE): Use BISON_C_WORKS.
2012-12-09 13:07:47 +01:00
Akim Demaille
09a1cd5e58 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2012-12-07 11:49:12 +01:00
Akim Demaille
a24e6b0d21 version 2.6.90
* NEWS: Record release date.
v2.6.90
2012-12-07 11:37:14 +01:00
Akim Demaille
1a9ac9bdba build: fix syntax-check error.
* cfg.mk: Exclude names-refs, it includes a "double" if (end of first
line, first of second line below).

test.y:43.12-44.59:  symbol not found in production: if
 if-stmt-a: IF expr[cond] THEN stmt.list[then] ELSE stmt.list[else] FI
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2012-12-07 11:34:51 +01:00
Theophile Ranquet
9318e335c8 cpp: simplify the Flex version checking macro
* src/flex-scanner,h (FLEX_VERSION): Consider YY_FLEX_SUBMINOR_VERSION
defined.
2012-12-07 12:13:38 +01:00
Theophile Ranquet
fb6040f0a8 news: improve the carets example and fix a typo
* NEWS: Here.
2012-12-07 12:02:00 +01:00
Theophile Ranquet
c49e2f1535 cpp: improve the Flex version checking macro
* src/flex-scanner.h (FLEX_VERSION): Here.
2012-12-07 12:02:00 +01:00
Theophile Ranquet
dbda560400 carets: improve the code
* src/location.c: Remove duplicate documentations.
(caret_info): Stylistic change.
(location_caret): Many reworks.
2012-12-07 12:02:00 +01:00
Akim Demaille
edf9a06f27 maint: update news
* NEWS: There is no 2.6.6, remove its stub.
2012-12-07 10:40:31 +01:00
Akim Demaille
85a2f27fc4 build: keep -Wmissing-declarations and -Wmissing-prototypes for modern GCCs
Fixes a -Werror failure of xalloc.h used in src.
From Eric Blake.
http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00006.html

* configure.ac: Check whether GCC pragma diagnostic push/pop works.
Enable these warnings for bison if it does.
Enable these warnings for the test suite anyway.
2012-12-07 10:16:47 +01:00
Akim Demaille
28d16d1f7c build: drop -Wcast-qual
Suggested by Jim Meyering.
http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00017.html
* configure.ac (warn_common): Remove -Wcast-qual.
2012-12-07 09:48:41 +01:00
Akim Demaille
f72721518b gnulib: update 2012-12-07 09:15:13 +01:00
Theophile Ranquet
f3ead217b8 Merge remote-tracking branch 'origin/maint'
* origin/maint:
  misc: pacify the Tiny C Compiler
  cpp: make the check of Flex version portable
  misc: require getline
  c++: support wide strings for file names
  doc: document carets
  tests: enhance existing tests with carets
  errors: show carets
  getargs: add support for --flags/-f

Conflicts:
	doc/bison.texi
	m4/.gitignore
	src/complain.c
	src/flex-scanner.h
	src/getargs.c
	src/getargs.h
	src/gram.c
	src/main.c
	tests/headers.at
2012-12-06 13:38:43 +01:00
Theophile Ranquet
9960a6ae75 misc: pacify the Tiny C Compiler
* src/graphviz.c (conclude_red): Remove a useless return.
2012-12-06 10:53:30 +01:00
Theophile Ranquet
b56484a5d3 cpp: make the check of Flex version portable
This was problematic with tcc 0.9.25

* src/flex-scanner.h (FLEX_VERSION_GT): Rewrite and rename as...
(FLEX_VERSION): This.
2012-12-05 19:14:23 +01:00
Theophile Ranquet
e35cd6def7 misc: require getline
* bootstrap.conf: Here, used by src/location.c.
* src/getargs.c (long_options): Rename --flags to --feature.
2012-12-05 15:39:52 +01:00
Akim Demaille
7ae57e2a35 c++: support wide strings for file names
Reported by Mark Boyall.
http://lists.gnu.org/archive/html/help-bison/2011-08/msg00002.html

* data/location.cc (operator<<): Be templated on the type of
output stream.
* tests/headers.at (Several parsers): Adjust.
2012-12-05 13:22:21 +01:00
Theophile Ranquet
7bada5355e doc: document carets
* NEWS: Announce it.
* doc/bison.texi (Bison Options):  Here.
2012-12-05 13:46:01 +01:00
Theophile Ranquet
505ece5171 tests: enhance existing tests with carets
* tests/actions.at: Unset value.
* tests/conflicts.at: Rule useless due to conflicts.
* tests/input.at: Missing terminator, unexpected end of file, command line
redefinition of variable.
* tests/named-refs.at: Many errors.
* tests/reduce.at: Useless nonterminals and rules.
* tests/regression.at: Large token.
2012-12-05 13:46:01 +01:00
Theophile Ranquet
3f5d1b2c67 errors: show carets
* src/locations.c (caret_info): New, persistant information useful
for...
(location_caret): New, print a caret.
(cleanup_caret): Release caret_info cleanly, call it...
* src/main.c (main): Here.
* src/complain.c (error_message): Call location_caret here.
2012-12-05 13:46:01 +01:00
Theophile Ranquet
0db2648930 getargs: add support for --flags/-f
Introduce -fdiagnostics-show-caret

* src/getargs.c (flag_flag): New global.
* src/getargs.h (flag): New enum.
2012-12-05 12:10:51 +01:00