Code: Select all
DeclareModule x
EndDeclareModule
Module x
DeclareModule y
EndDeclareModule
Module y
EndModule
EndModule
Code: Select all
DeclareModule x
EndDeclareModule
Module x
DeclareModule y
EndDeclareModule
Module y
EndModule
EndModule
There are a lot of libraries/frameworks making use of nested namespace. Think of the .NET framework for instance...I don't know a real world project that uses nested namespaces [...]
Code: Select all
Draw Alias System::Graphic::Drawing
Code: Select all
DeclareModule MainModule
Declare Test()
EndDeclareModule
Module MainModule
DeclareModule Nested0Y
Declare Test()
EndDeclareModule
DeclareModule Nested0X
Declare Test()
EndDeclareModule
Module Nested0Y
DeclareModule Nested1Y
Declare Test()
EndDeclareModule
Module Nested1Y
Procedure Test()
EndProcedure
EndModule
Procedure Test()
Nested1X::Test() ; disallowed
Nested1Y::Test() ; allowed
EndProcedure
EndModule
Module Nested0X
DeclareModule Nested1X
Declare Test()
EndDeclareModule
Module Nested0X
Procedure Test()
EndProcedure
EndModule
Procedure Test()
Nested1X::Test() ; allowed
Nested1Y::Test() ; disallowed
EndProcedure
EndModule
Procedure Test()
Nested0X::Test() ; allowed
Nested0Y::Test() ; allowed
Nested0X::Nested1X::Test() ; disallowed
Nested0Y::Nested1Y::Test() ; disallowed
EndProcedure
EndModule
MainModule::Test() ; allowed
MainModule::Nested0X::Test() ; disallowed
MainModule::Nested0Y::Test() ; disallowed
MainModule::Nested0X::Nested1X::Test() ; disallowed
MainModule::Nested0Y::Nested1Y::Test() ; disallowed
I would not disallow this. Think of the .NET framework again. It is popular for its well designed structure and allows this type of constructs.MainModule::Nested0X::Test() ; disallowed