0
我是相当新的Scala和我想分析的情况下类的列表:解析名单
abstract class D
case class D0(a: Int, b: Int) extends D
case class D2(c: String, d: Int) extends D
case class D3(e: Int, f: String) extends D
case class D4(e: String, f: String, g: Int) extends D
我想分析列表[d]的实例。 有一个在列表中的一个特殊的顺序可以由BNF状符号进行说明:
rep(D0 -> D4 -> rep(D2 -> opt(rep(d3))))
D0之后D4之后是1-n的D2,每个D2随后用1-N D3等...
我想创建类型的列表:
type T0 = (D0, D4, List[(D2, List[D3])])
到目前为止,我发现所有的解决方案是丑陋的和有状态。 经验丰富的Scala开发人员如何实现这一目标?
谢谢
你从什么分析?也就是说,你的输入格式是什么? – sjrd 2014-10-08 20:14:48
'List [D]'与您提出的结构不同。列表是一个列表。你的结构是别的。 – Daenyth 2014-10-08 20:24:45
列表[D]是从基于文件的遗留数据库导入的,具有不同的记录类型,实现了分层数据库模型。 – Volker 2014-10-09 09:37:30