fix javadoc generation
[sbp.git] / src / edu / berkeley / sbp / scala / SBP.scala
1 package edu.berkeley.sbp.scala
2 import edu.berkeley.sbp.Input.Location
3 import edu.berkeley.sbp.Input.Region
4
5 case class Tree(val label:String, val children:IndexedSeq[Tree], val region:Option[Region[_]]) {
6
7   def childrenFlat : Boolean =
8     children.map((t:Tree) => children.length == 0).foldLeft(true)(_ && _)
9
10   def coalesceFlatHeadlessNodes : Tree =
11    if (label.equals("") && childrenFlat)
12       new Tree(children.map((t:Tree) => t.label).foldLeft("")(_ + _), Tree.emptyChildren, region)
13    else
14       new Tree(label, (children.map((t:Tree) => t.coalesceFlatHeadlessNodes)), region)
15 }
16
17 object Tree {
18   val emptyChildren = IndexedSeq[Tree]()
19 }
20
21 object SBP {
22
23   def mkTree(t:edu.berkeley.sbp.Tree[String]) : Tree = {
24     val children = scala.collection.immutable.IndexedSeq[Tree](
25       (for(i <- 0 until t.size())
26         yield mkTree(t.child(i)))
27       : _*
28     )
29     val region = t.getRegion
30     return new Tree(t.getHead.toString, children, if (region==null) None else Some(region))
31   }
32
33 }