1 package edu.berkeley.sbp.scala
3 class Location(val row:Int, val col:Int) {
6 class Region(val start:Location, val end:Location) {
9 case class Tree(val label:String, val children:IndexedSeq[Tree] /*, val region:Region*/) {
11 def childrenFlat : Boolean =
12 children.map((t:Tree) => children.length == 0).foldLeft(true)(_ && _)
14 def coalesceFlatHeadlessNodes : Tree =
15 if (label.equals("") && childrenFlat)
16 new Tree(children.map((t:Tree) => t.label).foldLeft("")(_ + _), Tree.emptyChildren)
18 new Tree(label, (children.map((t:Tree) => t.coalesceFlatHeadlessNodes)))
22 val emptyChildren = IndexedSeq[Tree]()
27 def mkTree(t:edu.berkeley.sbp.Tree[String]) : Tree = {
28 val children = scala.collection.immutable.IndexedSeq[Tree](
29 (for(i <- 0 until t.size())
30 yield mkTree(t.child(i)))
33 return new Tree(t.getHead.toString, children)