projects
/
sbp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f8303d6
)
add Region to Scala representation of Tree
author
Adam Megacz
<megacz@cs.berkeley.edu>
Sun, 23 Jan 2011 02:31:05 +0000
(18:31 -0800)
committer
Adam Megacz
<megacz@cs.berkeley.edu>
Sun, 23 Jan 2011 02:31:05 +0000
(18:31 -0800)
src/edu/berkeley/sbp/scala/SBP.scala
patch
|
blob
|
history
diff --git
a/src/edu/berkeley/sbp/scala/SBP.scala
b/src/edu/berkeley/sbp/scala/SBP.scala
index
c231646
..
f9afe4f
100644
(file)
--- a/
src/edu/berkeley/sbp/scala/SBP.scala
+++ b/
src/edu/berkeley/sbp/scala/SBP.scala
@@
-1,21
+1,17
@@
package edu.berkeley.sbp.scala
package edu.berkeley.sbp.scala
+import edu.berkeley.sbp.Input.Location
+import edu.berkeley.sbp.Input.Region
-class Location(val row:Int, val col:Int) {
-}
-
-class Region(val start:Location, val end:Location) {
-}
-
-case class Tree(val label:String, val children:IndexedSeq[Tree] /*, val region:Region*/) {
+case class Tree(val label:String, val children:IndexedSeq[Tree], val region:Option[Region[_]]) {
def childrenFlat : Boolean =
children.map((t:Tree) => children.length == 0).foldLeft(true)(_ && _)
def coalesceFlatHeadlessNodes : Tree =
if (label.equals("") && childrenFlat)
def childrenFlat : Boolean =
children.map((t:Tree) => children.length == 0).foldLeft(true)(_ && _)
def coalesceFlatHeadlessNodes : Tree =
if (label.equals("") && childrenFlat)
- new Tree(children.map((t:Tree) => t.label).foldLeft("")(_ + _), Tree.emptyChildren)
+ new Tree(children.map((t:Tree) => t.label).foldLeft("")(_ + _), Tree.emptyChildren, region)
else
else
- new Tree(label, (children.map((t:Tree) => t.coalesceFlatHeadlessNodes)))
+ new Tree(label, (children.map((t:Tree) => t.coalesceFlatHeadlessNodes)), region)
}
object Tree {
}
object Tree {
@@
-30,7
+26,8
@@
object SBP {
yield mkTree(t.child(i)))
: _*
)
yield mkTree(t.child(i)))
: _*
)
- return new Tree(t.getHead.toString, children)
+ val region = t.getRegion
+ return new Tree(t.getHead.toString, children, if (region==null) None else Some(region))
}
}
}
}