/*namespace-or-type-member-declaration:
  | namespace-declaration optional-namespace-or-type-member-declaration
  | type-declaration-list optional-namespace-or-type-member-declaration */
 private void namespace_or_type_member_declaration(ref CompilationUnitNode compilation, ref NamespaceNode currentNamespace)
 {
     printIfDebug("namespace_or_type_member_declaration");
     if (pass(TokenType.RW_NAMESPACE))
     {
         var namespaceDeclared = namespace_declaration(ref compilation);
         if (currentNamespace.Identifier.Name != "default")
         {
             // namespaceDeclared.setParentNamePrefix(currentNamespace.Identifier);
             namespaceDeclared.setParentNamespace(ref currentNamespace);
             // namespaceDeclared.addFatherUsings(currentNamespace.usingDirectives);
         }
         // else{
         //     namespaceDeclared.addFatherUsings(compilation.usingDirectives);
         // }
         compilation.addNamespace(namespaceDeclared);
         optional_namespace_or_type_member_declaration(ref compilation, ref currentNamespace);
     }
     else
     {
         var listTypeDeclared = type_declaration_list();
         currentNamespace.addTypeList(listTypeDeclared);
         optional_namespace_or_type_member_declaration(ref compilation, ref currentNamespace);
     }
 }