Arturas Slajus created JRUBY-6375:
-------------------------------------

             Summary: Uninformative YAML parser error
                 Key: JRUBY-6375
                 URL: https://jira.codehaus.org/browse/JRUBY-6375
             Project: JRuby
          Issue Type: Bug
          Components: Ruby 1.9.2, Standard Library
    Affects Versions: JRuby 1.6.5, JRuby 1.6.6
            Reporter: Arturas Slajus
            Assignee: Thomas E Enebo
            Priority: Minor


When parsing bad YAML, parser gives very unclear message of what went wrong:

{noformat}
arturas@zeus:~/work$ cat yaml_test.rb 
#!/usr/bin/env ruby
require 'yaml'
require 'pp'

bad_yaml = %Q{---
foo: {a: u[3]}
}
good_yaml = %Q{---
foo: {a: "u[3]"}
}

pp YAML.load(good_yaml)
pp YAML.load(bad_yaml)


arturas@zeus:~/work$ jruby --1.9 yaml_test.rb 
{"foo"=>{"a"=>"u[3]"}}
Psych::SyntaxError: while parsing a flow mapping; expected ',' or '}', but got 
FlowSequenceStart
         parse at org/jruby/ext/psych/PsychParser.java:266
  parse_stream at 
/home/arturas/.rvm/rubies/jruby-head-n166/lib/ruby/1.9/psych.rb:148
         parse at 
/home/arturas/.rvm/rubies/jruby-head-n166/lib/ruby/1.9/psych.rb:119
          load at 
/home/arturas/.rvm/rubies/jruby-head-n166/lib/ruby/1.9/psych.rb:106
        (root) at yaml_test.rb:13
{noformat}

Compare this to python parser:

{noformat}
ERROR:

while parsing a flow mapping
  in "<unicode string>", line 2, column 6:
    foo: {a: u[3]}
         ^
expected ',' or '}', but got '['
  in "<unicode string>", line 2, column 11:
    foo: {a: u[3]}
              ^
{noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to