Set default %printer for NODE nterms

Before:

```
Reducing stack by rule 639 (line 5062):
   $1 = token "integer literal" (1.0-1.1: 1)
-> $$ = nterm simple_numeric (1.0-1.1: )
```

After:

```
Reducing stack by rule 641 (line 5078):
   $1 = token "integer literal" (1.0-1.1: 1)
-> $$ = nterm simple_numeric (1.0-1.1: NODE_LIT)
```

`"<*>"` is supported by Bison 2.3b (2008-05-27) or later.
https://git.savannah.gnu.org/cgit/bison.git/commit/?id=12e3584054c16ab255672c07af0ffc7bb220e8bc

Therefore developers need to install Bison 2.3b+ to build ruby from
source codes if their Bison is older.

Minimum version requirement for Bison is changed to 3.0.

See: https://bugs.ruby-lang.org/issues/19068 [Feature #19068]
This commit is contained in:
yui-knk 2022-09-23 23:01:55 +09:00 коммит произвёл Yuichiro Kaneko
Родитель 7456647eff
Коммит f7db1affd1
3 изменённых файлов: 11 добавлений и 2 удалений

3
.github/workflows/macos.yml поставляемый
Просмотреть файл

@ -51,11 +51,12 @@ jobs:
- name: Install libraries
run: |
brew upgrade
brew install gmp libffi openssl@1.1 zlib autoconf automake libtool readline
brew install gmp libffi openssl@1.1 zlib autoconf automake libtool readline bison
working-directory: src
- name: Set ENV
run: |
echo "MAKEFLAGS=-j$((1 + $(sysctl -n hw.activecpu)))" >> $GITHUB_ENV
echo "PATH="/usr/local/opt/bison/bin:$PATH"" >> $GITHUB_ENV
- run: ./autogen.sh
working-directory: src
- name: Run configure

Просмотреть файл

@ -47,7 +47,7 @@ def prelude(f, out)
when /\A%%/
out << "%%\n"
return
when /\A%token/
when /\A%token/, /\A} <node>/
out << line.sub(/<\w+>/, '<val>')
when /\A%type/
out << line.sub(/<\w+>/, '<val>')

Просмотреть файл

@ -1140,6 +1140,14 @@ static int looking_at_eol_p(struct parser_params *p);
%define api.pure
%define parse.error verbose
%printer {
#ifndef RIPPER
if ($$) {
rb_parser_printf(p, "%s", ruby_node_name(nd_type($$)));
}
#else
#endif
} <node>
%printer {
#ifndef RIPPER
rb_parser_printf(p, "%"PRIsVALUE, rb_id2str($$));
#else