2014-12-11 3 views
4

Я бегу в интерактивном режиме:Когда нужно разобрать() выбросить ошибку?

Julia Version 0.4.0-dev+1903 
Commit 6b0fcce (2014-11-30 18:08 UTC) 

Отсюда в документации для Base.parse:

http://julia.readthedocs.org/en/latest/stdlib/base/?highlight=parse#Base.parse

Я прочитал это:

Если рейз истинно (по умолчанию), ошибки синтаксиса вызовут ошибку; в противном случае parse вернет выражение, которое приведет к ошибке после оценки.

Он работает как описано, когда я делаю это:

julia> parse("end") 
ERROR: ParseError("unexpected end") 

Но не тогда, когда я делаю это:

julia> parse("println(") 
:($(Expr(:incomplete, "incomplete: premature end of input"))) 
julia> eval(ans) 
ERROR: syntax: incomplete: premature end of input 

Это ожидаемое поведение? Должно ли parse() выбросить ошибку в этом втором случае, или он должен дождаться eval()?

+3

Моя первоначальная догадка заключается в том, что это ошибка или, по крайней мере, документация должна быть улучшена. Не могли бы вы открыть проблему? –

+0

Спасибо за подсказку, разместил ее здесь: https://github.com/JuliaLang/julia/issues/9505 – dbrunton

ответ

1

В этом случае в этом случае необходимо произвести разборки. По словам Симона Бирна, я опубликовал вопрос GitHub, у которого уже есть запрос на вытягивание, ожидающий его закрытия: https://github.com/JuliaLang/julia/pull/9514/

Спасибо, всем!

Смежные вопросы