Exemplo n.º 1
0
 def add_to_internal_block(self, declaration):
     # todo by KP: factor me out to utils
     """
     Adds the handed over declaration the internal block
     :param declaration: a single declaration
     :type declaration: ast_declaration
     """
     if self.get_internals_blocks() is None:
         ASTUtils.create_internal_block(self)
     self.get_internals_blocks().get_declarations().append(declaration)
     return
Exemplo n.º 2
0
 def add_to_internal_block(self, declaration, index=-1):
     """
     Adds the handed over declaration the internal block
     :param declaration: a single declaration
     :type declaration: ast_declaration
     """
     if self.get_internals_blocks() is None:
         ASTUtils.create_internal_block(self)
     n_declarations = len(self.get_internals_blocks().get_declarations())
     if n_declarations == 0:
         index = 0
     else:
         index = 1 + (index % len(self.get_internals_blocks().get_declarations()))
     self.get_internals_blocks().get_declarations().insert(index, declaration)
     declaration.update_scope(self.get_internals_blocks().get_scope())
     from pynestml.visitors.ast_symbol_table_visitor import ASTSymbolTableVisitor
     symtable_vistor = ASTSymbolTableVisitor()
     symtable_vistor.block_type_stack.push(BlockType.INTERNALS)
     declaration.accept(symtable_vistor)
     symtable_vistor.block_type_stack.pop()