Ruby 1.9.1 ошибка синтаксического анализа flog gem для значения nil (tNL) - PullRequest
2 голосов
/ 09 декабря 2011

Мы используем flog на ruby ​​1.9.1 в проекте rails, и при обработке некоторого кода он завершает выдачу исключения:

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

У меня были предыдущие проблемы с этим, связанные с тем, что flog не распознаетновый синтаксис Ruby, но я не могу найти, в чем проблема сейчас.

Любая помощь в знании причины возникновения приветствуется, я не могу найти способ узнать, на какой линии проваливается ошибка.

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Проблема заключается в синтаксисе, как я уже сказал.

Таким образом, эта проблема возникает, когда у вас есть переменные со значениями по умолчанию перед другими переменными при определении метода.

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

Это допустимый код в ruby ​​1.9.x, но не в предыдущих версиях ruby, и поскольку у flog нет поддержки синтаксиса ruby ​​1.9.x, возникает исключение. Как и с любым другим несовместимым синтаксисом.

Так что, если вы используете flog, вам придется использовать синтаксис ruby ​​1.8.

0 голосов
/ 10 декабря 2011

Насколько я знаю, flog вообще не поддерживает Ruby 1.9, это зависит от ParseTree, который был убит за 1.9 . Может быть, вы можете попробовать что-то вроде https://github.com/hubertlepicki/metric_abc?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...