def run(self) -> List[Node]:
    if (self.arguments[0].strip() in ('NULL', '0', 'nullptr')):
        return []
    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)
    oldParent = self.env.temp_data.get('cpp:parent_symbol', None)
    if (not oldParent):
        oldParent = self.env.domaindata['cpp']['root_symbol']
    symbol = oldParent.add_name(ast.nestedName, ast.templatePrefix)
    stack = self.env.temp_data.get('cpp:namespace_stack', [])
    stack.append(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]:
    if (self.arguments[0].strip() in ('NULL', '0', 'nullptr')):
        return []
    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)
    oldParent = self.env.temp_data.get('cpp:parent_symbol', None)
    if (not oldParent):
        oldParent = self.env.domaindata['cpp']['root_symbol']
    symbol = oldParent.add_name(ast.nestedName, ast.templatePrefix)
    stack = self.env.temp_data.get('cpp:namespace_stack', [])
    stack.append(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 []