Skip to content

Commit

Permalink
Set default %printer for NODE nterms
Browse files Browse the repository at this point in the history
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]
  • Loading branch information
yui-knk committed Nov 8, 2022
1 parent 7456647 commit f7db1af
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion ext/ripper/tools/preproc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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>')
Expand Down
8 changes: 8 additions & 0 deletions parse.y
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit f7db1af

Please sign in to comment.