Added a pass to generate interfaces with the purpose of simulating multiple inheritance.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Completed the support for multiple inheritance with the exception of base interfaces and the cast operator in the derived class to the second or later base.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added explicit implementation of interface properties (when necessary).

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Fixed a bug in the getting of the root base method: the bases after the first one were ignored.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Completed the parallel hierarchy of interfaces so that a derived class can access the members of all of its bases.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Replaced the vague checks for explicit interface impls with a specific property.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Fixed the check for duplicates to account for explicit impls. Fixed the getting of a root base method and property to consider the parameter for all bases.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Removed the generation of protected members of interfaces.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added a fake option for multiple inheritance so that the build stays healthy.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added a new pass converting all parameter types to their respective interfaces, if any.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Changed a bit the method for a class definition to be able to reuse it for interfaces.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Changed the copy constructor of properties to make a shallow copy.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added a block kind for an interface.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Reused the method for generating a string representation of an access qualifier.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Stored the original class in its interface replacement used with multiple inheritance.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Added a new class type "Interface".

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Converted return types to their complementary interfaces, if any.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
Merge pull request #68 from ddobrev/multiple_inheritance

Multiple inheritance