--- /dev/null
+package ofc.generators.onetep
+
+class IndexBindings {
+ import scala.collection.mutable.{Set,HashSet, HashMap}
+
+ val spatial = new HashMap[BindingIndex, Set[SpatialIndex]]
+ val discrete = new HashMap[BindingIndex,Set[DiscreteIndex]]
+
+ override def toString = spatial.mkString("\n") + "\n" + discrete.mkString("\n")
+
+ def add(binding: BindingIndex, index: SpatialIndex) = spatial.getOrElseUpdate(binding, new HashSet()) += index
+ def add(binding: BindingIndex, index: DiscreteIndex) = discrete.getOrElseUpdate(binding, new HashSet()) += index
+
+ def contains(index: SpatialIndex) : Boolean = {
+ for((bindingIndex, spatialIndices) <- spatial; if spatialIndices.contains(index))
+ return true
+
+ false
+ }
+
+ def contains(index: DiscreteIndex) : Boolean = {
+ for((bindingIndex, discreteIndices) <- discrete; if discreteIndices.contains(index))
+ return true
+
+ false
+ }
+}
}
}
-class IndexBindings {
- import scala.collection.mutable.{Set,HashSet, HashMap}
-
- val spatial = new HashMap[BindingIndex, Set[SpatialIndex]]
- val discrete = new HashMap[BindingIndex,Set[DiscreteIndex]]
-
- def add(binding: BindingIndex, index: SpatialIndex) = spatial.getOrElseUpdate(binding, new HashSet()) += index
- def add(binding: BindingIndex, index: DiscreteIndex) = discrete.getOrElseUpdate(binding, new HashSet()) += index
-
- override def toString = spatial.mkString("\n") + "\n" + discrete.mkString("\n")
-}
-
class TreeBuilder(dictionary : Dictionary) {
val indexBindings = new IndexBindings
var nextBindingIndexID = 0
case _ => throw new InvalidInputException("Non-assignable expression on LHS of assignment.")
}
}
+
+ def getIndexBindings = indexBindings
private def buildIndexedSpace(term: parser.IndexedIdentifier) : IterationSpace = {
val dataSpace = dictionary.getData(term.id)