diff --git a/docs/metaobject-api.pod b/docs/metaobject-api.pod index 943f0afd984..c34cc5baca2 100644 --- a/docs/metaobject-api.pod +++ b/docs/metaobject-api.pod @@ -48,7 +48,7 @@ This role provides storage of roles, role addition and role introspection. The composition process is not part of the functionality provided by this role, however. -=head3 MultiInheritance +=head3 MultipleInheritance Provides for addition of multiple parents, and introspection of them too. @@ -56,7 +56,7 @@ Provides for addition of multiple parents, and introspection of them too. This role provides an implementation of the C3 method resolution order. -=head3 Versionable +=head3 Versioning This role provides storage and introspection of a version and authority. @@ -86,6 +86,10 @@ Provides an implementation of a concrete instance of a role. Provides an implementation of grammars. Actually, just a subclass of the ClassHOW since grammars are really just slightly specialized classes. +=head3 NativeHOW + +Meta-object for a native type (only accesible via the type object, perhaps). + =head3 SubsetHOW Provides an implementation of subset types. diff --git a/src/Perl6/Metamodel/AttributeContainer.pm b/src/Perl6/Metamodel/AttributeContainer.pm new file mode 100644 index 00000000000..e63f2c948ab --- /dev/null +++ b/src/Perl6/Metamodel/AttributeContainer.pm @@ -0,0 +1,2 @@ +role Perl6::Metamodel::AttributeContainer { +} diff --git a/src/Perl6/Metamodel/C3MRO.pm b/src/Perl6/Metamodel/C3MRO.pm new file mode 100644 index 00000000000..100b90b5362 --- /dev/null +++ b/src/Perl6/Metamodel/C3MRO.pm @@ -0,0 +1,2 @@ +role Perl6::Metamodel::C3MRO { +} diff --git a/src/Perl6/Metamodel/ClassHOW.pm b/src/Perl6/Metamodel/ClassHOW.pm new file mode 100644 index 00000000000..02bc16fb752 --- /dev/null +++ b/src/Perl6/Metamodel/ClassHOW.pm @@ -0,0 +1,10 @@ +class Perl6::Metamodel::ClassHOW + does Perl6::Metamodel::Versioning + does Perl6::Metamodel::MethodContainer + does Perl6::Metamodel::MultiMethodContainer + does Perl6::Metamodel::AttributeContainer + does Perl6::Metamodel::RoleContainer + does Perl6::Metamodel::MultipleInheritance + does Perl6::Metamodel::C3MRO +{ +} diff --git a/src/Perl6/Metamodel/ConcreteRoleHOW.pm b/src/Perl6/Metamodel/ConcreteRoleHOW.pm new file mode 100644 index 00000000000..5fdf358e4a2 --- /dev/null +++ b/src/Perl6/Metamodel/ConcreteRoleHOW.pm @@ -0,0 +1,9 @@ +class Perl6::Metamodel::ConcreteRoleHOW + does Perl6::Metamodel::Versioning + does Perl6::Metamodel::MethodContainer + does Perl6::Metamodel::MultiMethodContainer + does Perl6::Metamodel::AttributeContainer + does Perl6::Metamodel::RoleContainer + does Perl6::Metamodel::MultipleInheritance +{ +} diff --git a/src/Perl6/Metamodel/GrammarHOW.pm b/src/Perl6/Metamodel/GrammarHOW.pm new file mode 100644 index 00000000000..6bd10aa53f4 --- /dev/null +++ b/src/Perl6/Metamodel/GrammarHOW.pm @@ -0,0 +1,2 @@ +class Perl6::Metamodel::GrammarHOW is Perl6::Metamodel::ClassHOW { +} diff --git a/src/Perl6/Metamodel/MethodContainer.pm b/src/Perl6/Metamodel/MethodContainer.pm new file mode 100644 index 00000000000..8b637067fec --- /dev/null +++ b/src/Perl6/Metamodel/MethodContainer.pm @@ -0,0 +1,2 @@ +role Perl6::Metamodel::MethodContainer { +} diff --git a/src/Perl6/Metamodel/ModuleHOW.pm b/src/Perl6/Metamodel/ModuleHOW.pm new file mode 100644 index 00000000000..705e9af8dc1 --- /dev/null +++ b/src/Perl6/Metamodel/ModuleHOW.pm @@ -0,0 +1,3 @@ +class Perl6::Metamodel::ModuleHOW does Perl6::Metamodel::Versioning { + +} diff --git a/src/Perl6/Metamodel/MultiMethodContainer.pm b/src/Perl6/Metamodel/MultiMethodContainer.pm new file mode 100644 index 00000000000..3f721d50d04 --- /dev/null +++ b/src/Perl6/Metamodel/MultiMethodContainer.pm @@ -0,0 +1,2 @@ +role Perl6::Metamodel::MultiMethodContainer { +} diff --git a/src/Perl6/Metamodel/MultipleInheritance.pm b/src/Perl6/Metamodel/MultipleInheritance.pm new file mode 100644 index 00000000000..d2e403e8e47 --- /dev/null +++ b/src/Perl6/Metamodel/MultipleInheritance.pm @@ -0,0 +1,2 @@ +role Perl6::Metamodel::MultipleInheritance { +} diff --git a/src/Perl6/Metamodel/NativeHOW.pm b/src/Perl6/Metamodel/NativeHOW.pm new file mode 100644 index 00000000000..e57e5588982 --- /dev/null +++ b/src/Perl6/Metamodel/NativeHOW.pm @@ -0,0 +1,2 @@ +class Perl6::Metamodel::NativeHOW { +} diff --git a/src/Perl6/Metamodel/ParametricRoleHOW.pm b/src/Perl6/Metamodel/ParametricRoleHOW.pm new file mode 100644 index 00000000000..9f9c895f38d --- /dev/null +++ b/src/Perl6/Metamodel/ParametricRoleHOW.pm @@ -0,0 +1,9 @@ +class Perl6::Metamodel::ParametricRoleHOW + does Perl6::Metamodel::Versioning + does Perl6::Metamodel::MethodContainer + does Perl6::Metamodel::MultiMethodContainer + does Perl6::Metamodel::AttributeContainer + does Perl6::Metamodel::RoleContainer + does Perl6::Metamodel::MultipleInheritance +{ +} diff --git a/src/Perl6/Metamodel/RoleContainer.pm b/src/Perl6/Metamodel/RoleContainer.pm new file mode 100644 index 00000000000..cb0774e9588 --- /dev/null +++ b/src/Perl6/Metamodel/RoleContainer.pm @@ -0,0 +1,2 @@ +role Perl6::Metamodel::RoleContainer { +} diff --git a/src/Perl6/Metamodel/SubsetHOW.pm b/src/Perl6/Metamodel/SubsetHOW.pm new file mode 100644 index 00000000000..8644748733f --- /dev/null +++ b/src/Perl6/Metamodel/SubsetHOW.pm @@ -0,0 +1,2 @@ +class Perl6::Metamodel::SubsetHOW { +} diff --git a/src/Perl6/Metamodel/Versioning.pm b/src/Perl6/Metamodel/Versioning.pm new file mode 100644 index 00000000000..da739b3f970 --- /dev/null +++ b/src/Perl6/Metamodel/Versioning.pm @@ -0,0 +1,2 @@ +role Perl6::Metamodel::Versioning { +}