- result.ids = self.compute_ids(elements)
- result.pos = self.colorer.colorize(elements)
- return result
- end
-end
-
-# Layout builder for resolution table using Perfect Hashing (PH)
-class PHResolutionLayoutBuilder
- super ResolutionLayoutBuilder
-
- redef type LAYOUT: PHLayout[MClassType, MType]
-
- private var hasher: PerfectHasher[MClassType, MType]
-
- init(operator: PHOperator) do self.hasher = new PerfectHasher[MClassType, MType](operator)
-
- # Compute resolved types masks and hashes
- redef fun build_layout(elements) do
- var result = new PHLayout[MClassType, MType]
- result.ids = self.compute_ids(elements)
- result.pos = result.ids
- result.masks = self.hasher.compute_masks(elements, result.ids)
- result.hashes = self.hasher.compute_hashes(elements, result.ids, result.masks)
- return result
- end
-
- redef fun compute_ids(elements) do