def run(self) -> List[Node]:
    rootSymbol = self.env.domaindata['cpp']['root_symbol']
    if (self.arguments[0].strip() in ('NULL', '0', 'nullptr')):
        symbol = rootSymbol
        stack = []
    else:
        parser = DefinitionParser(self.arguments[0], location=self.get_source_info(), config=self.config)
        try:
            ast = parser.parse_namespace_object()
            parser.assert_end()
        except DefinitionError as e:
            logger.warning(e, location=self.get_source_info())
            name = _make_phony_error_name()
            ast = ASTNamespace(name, None)
        symbol = rootSymbol.add_name(ast.nestedName, ast.templatePrefix)
        stack = [symbol]
    self.env.temp_data['cpp:parent_symbol'] = symbol
    self.env.temp_data['cpp:namespace_stack'] = stack
    self.env.ref_context['cpp:parent_key'] = symbol.get_lookup_key()
    return []
def run(self) -> List[Node]:
    rootSymbol = self.env.domaindata['cpp']['root_symbol']
    if (self.arguments[0].strip() in ('NULL', '0', 'nullptr')):
        symbol = rootSymbol
        stack = []
    else:
        parser = DefinitionParser(self.arguments[0], location=self.get_source_info(), config=self.config)
        try:
            ast = parser.parse_namespace_object()
            parser.assert_end()
        except DefinitionError as e:
            logger.warning(e, location=self.get_source_info())
            name = _make_phony_error_name()
            ast = ASTNamespace(name, None)
        symbol = rootSymbol.add_name(ast.nestedName, ast.templatePrefix)
        stack = [symbol]
    self.env.temp_data['cpp:parent_symbol'] = symbol
    self.env.temp_data['cpp:namespace_stack'] = stack
    self.env.ref_context['cpp:parent_key'] = symbol.get_lookup_key()
    return []