I'm issuing this challenge because I'm
too lazy to do this myself. ;)

Perhaps no one will be interested. But 
I have a feeling someone could do this
with some trick I haven't seen yet.

Problem: Given an input line consisting
of Ruby constants separated by whitespace,
return an array of those constants.

Hashes and arrays are allowed as long as
their contents are constants. Regexes are
allowed. Fancy strings are allowed, but
not here-docs. Proc objects and other 
esoteric things are not allowed.

Have I left any holes in this problem? I'm
sure I have, and I'm sure the language
lawyers will be all over me. ;)

Example:

  str = <<EOF
  123 4.567 "John Smith" %w[a b c] [1,2,3] {5=>6} true nil
  EOF

  values = str.parse
  # values should now be:
  # [123, 4.567, "John Smith", ["a", "b", "c"], [1,2,3], 
  #  {5=>6}, true, nil]


What I'm after is a CSV-like line-oriented 
data format, but simpler and prettier.

Note: I don't think regexes will work for this.
Will need a parser. Perhaps Rockit (or lift C code
from Ruby interp)?

Thoughts?

Cheers,
Hal