值为零(tNL)的Ruby 1.9.1 flog gem parse错误

时间:2011-12-09 18:35:39

标签: ruby-on-rails ruby parsing

我们在rails项目上的ruby 1.9.1上使用了flog,在处理一些代码时它退出了异常:

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

我之前遇到的问题与flog没有识别出新的Ruby sintax有关,但我找不到问题所在。

任何有关了解问题原因的帮助都是受欢迎的,我找不到办法知道哪一行失败了。

2 个答案:

答案 0 :(得分:1)

问题在于我所说的语法。

因此,在定义方法时,如果在其他变量之前使用默认值的变量,则会出现此问题。

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

这是ruby 1.9.x中的有效代码,但在以前的ruby版本中没有,因为flog没有ruby 1.9.x语法支持它会引发异常。与任何其他不兼容的语法一样。

因此,如果您使用的是flog,则必须使用ruby 1.8语法。

答案 1 :(得分:0)

据我所知,flog根本不支持Ruby 1.9,它依赖于ParseTree has been killed for 1.9。也许您可以尝试使用类似https://github.com/hubertlepicki/metric_abc的内容?