groostav
02/01/2017, 11:14 AMinterface Node {
fun accept(visitor:visitor)
}
class NodeBase(visit: (Visitor) -> Unit){
children: List<Node>
override final fun accept(visitor: Visitor){
visit(visitor)
children.foreach { it.accept(visitor) }
}
}
class NodeImpl1: NodeBase({ it.visit(this) })
class NodeImpl2: NodeBase({ it.visit(this) })