history

青木日記 RSS

<前の日 | この月 | 次の日>

2004-10-31

ripper

懸案の 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)

本日のツッコミ(全2件) [ツッコミを入れる]
Kouji (2004-11-05 12:46)

setup.rbを使っています。
ruby setup.rb all --rubypath=/usr/bin/ruby1.8と指定した場合、bin/のファイルの#!が上書きされないようです。
原因はFile.basename(rubypath)がrubyではないからなのですが、なんとかならないですかね。

青木 (2004-11-06 03:01)

あ、それは単なるミスみたいです。
CVS HEAD では直ってると思います。

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS