-
- # extract set of properties from mclass
- private fun properties(mclass: MClass): Set[E] do
- var properties = new HashSet[E]
- for mprop in self.mmodule.properties(mclass) do
- if mprop isa MPROP then properties.add(mprop)
- end
- return properties
- end
-end
-
-# Layout builder for vft using perfect hashing (PH)
-class MMethodHasher
- super MPropertyHasher[MMethod]
- redef type MPROP: MMethod
- init(operator: PHOperator, mmodule: MModule) do super(operator, mmodule)
-end
-
-# Layout builder for attributes tables using perfect hashing (PH)
-class MAttributeHasher
- super MPropertyHasher[MAttribute]
- redef type MPROP: MAttribute
- init(operator: PHOperator, mmodule: MModule) do super(operator, mmodule)
-end
-
-# Layout builder for virtual types tables using perfect hashing (PH)
-class MVirtualTypePropHasher
- super MPropertyHasher[MVirtualTypeProp]
- redef type MPROP: MVirtualTypeProp
- init(operator: PHOperator, mmodule: MModule) do super(operator, mmodule)