懸案の 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)
setup.rbを使っています。
ruby setup.rb all --rubypath=/usr/bin/ruby1.8と指定した場合、bin/のファイルの#!が上書きされないようです。
原因はFile.basename(rubypath)がrubyではないからなのですが、なんとかならないですかね。
あ、それは単なるミスみたいです。
CVS HEAD では直ってると思います。