Я определил ряд классов дел, таких как
abstract class Foo
case class Bar(s: String) extends Foo
case class Baz(f: Foo) extends Foo
case class FooBar(l: Foo, r:Foo)
, которые позволяют мне создавать сложные данные, например,
val x = FooBar(Bar("1"), Baz(Bar("2")))
Я хочу прочитать данные этого типа изстрока, такая как
val x = what_to_do_here?("FooBar(Bar("1"), Baz(Bar("2")))")
На динамическом языке я бы просто назвал eval. (Правка: я действительно не хочу называть что-то вроде eval в scala)
Решение, которое я придумал в scala, - написать парсер.Есть ли более простой способ сделать это?