2011-12-09 6 views
2
私たちは、レールのプロジェクトのルビー1.9.1に売るといくつかのコードを処理している間、それは例外上げ終了使用している

:私は「はRubyは値nilに宝石解析エラーを売る1.9.1(TNL)

ruby/1.9.1/racc/parser.rb:349:in `on_error': (Racc::ParseError) 
parse error on value nil (tNL) 

をRubyの新しいsintaxを認識できないというフロッグに関するこれまでの問題がありましたが、今どこに問題があるのか​​わかりません。

問題の原因を知る上での助けとなることは歓迎ですが、私はどのフロッグが失敗しているのかを知る方法を見つけることができません。

答えて

1

問題は私が言ったように構文にあります。

この問題は、メソッドを定義する際に他の変数よりも前にデフォルト値を持つ変数がある場合に発生します。

def par1, par2='false', par3 
    ... 
end 

これはRubyの1.9.xではなく、以前のRubyのバージョンでは有効なコードで、カエルは何のルビー1.9.xの構文をサポートしていないので、それは例外が発生します。その他の互換性のない構文と同様です。

したがって、flogを使用している場合は、ruby 1.8構文を使用する必要があります。

0

フロッグがRuby 1.9をまったくサポートしていない限り、ParseTreeはhas been killed for 1.9に依存しています。多分https://github.com/hubertlepicki/metric_abcのようなものを試してみることができますか?

+0

ありがとうございました! 1.9のために殺されたParseTreeに依存していることは知っています。 私はそのことについては希望がありませんでした。私が期待していた答えは、問題がどこで嘘をついたかを伝える方法でした。 Rubyはうまく動作するので、どのコードでエラーが発生する可能性があるのか​​を知る必要がありました。 提案をお寄せいただきありがとうございます。私はチームに完全にルビ1.9互換のものに移行するように説得できるかどうかを見ていきます。 – Machine

関連する問題