懸案の yylval 伝播をやろうと思って parse.y を見ると、 なぜか yylval への代入が既にパラメタライズされていた。
「おおっ? もしかして誰かがやってくれたのかっ!」
と思ったが、実装したのは昔の自分だったことがわかった。 やるな、過去の俺。
現在の状況……構文木がこんなふうになった
~/c/ruby % ruby -rripper/sexp -rpp -e 'pp Ripper.sexp("def obj.m(a,b) nil end")' [:program, [:stmts_add, [:stmts_new], [:defs, [:var_ref, [:@ident, "obj", [1, 4]]], [:@period, ".", [1, 7]], [:@ident, "m", [1, 8]], [:paren, [:params, [[:@ident, "a", [1, 10]], [:@ident, "b", [1, 12]]], nil, nil, nil]], [:bodystmt, [:stmts_add, [:stmts_new], [:var_ref, [:@kw, "nil", [1, 15]]]], nil, nil, nil]]]]
あと演算子がまるまる残ってるんだけど、 これをやると type clash (`' `val') の山に苦しめられるんだよなあ……
(14:35)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
setup.rbを使っています。
ruby setup.rb all --rubypath=/usr/bin/ruby1.8と指定した場合、bin/のファイルの#!が上書きされないようです。
原因はFile.basename(rubypath)がrubyではないからなのですが、なんとかならないですかね。
あ、それは単なるミスみたいです。
CVS HEAD では直ってると思います。