Esempio n. 1
0
 def visit_declaration(self, node):
     """
     Checks the coco on the current node.
     :param node: a single declaration.
     :type node: ast_declaration
     """
     for var in node.get_variables():
         symbol = node.get_scope().resolve_to_symbol(
             var.get_complete_name(), SymbolKind.VARIABLE)
         # first check that all initial value variables have a lhs
         if symbol is not None and symbol.is_init_values(
         ) and not node.has_expression():
             code, message = Messages.get_no_rhs(symbol.get_symbol_name())
             Logger.log_message(error_position=var.get_source_position(),
                                code=code,
                                message=message,
                                log_level=LoggingLevel.WARNING)
         # now check that they have been provided with an ODE
         if symbol is not None and symbol.is_init_values() \
                 and not (symbol.is_ode_defined() or symbol.is_kernel()) and not symbol.is_function:
             code, message = Messages.get_no_ode(symbol.get_symbol_name())
             Logger.log_message(error_position=var.get_source_position(),
                                code=code,
                                message=message,
                                log_level=LoggingLevel.WARNING)
         if symbol is not None and symbol.is_init_values(
         ) and not symbol.has_initial_value():
             code, message = Messages.get_no_init_value(
                 symbol.get_symbol_name())
             Logger.log_message(error_position=var.get_source_position(),
                                code=code,
                                message=message,
                                log_level=LoggingLevel.WARNING)
     return
 def visit_declaration(self, node: ASTDeclaration):
     """
     Checks if the coco applies.
     :param node: a single declaration.
     """
     if node.is_inline_expression and not node.has_expression():
         code, message = Messages.get_no_rhs(node.get_variables()[0].get_name())
         Logger.log_message(error_position=node.get_source_position(), log_level=LoggingLevel.ERROR,
                            code=code, message=message)
 def visit_declaration(self, node):
     """
     Checks if the coco applies.
     :param node: a single declaration.
     :type node: ASTDeclaration.
     """
     if node.is_function and not node.has_expression():
         code, message = Messages.get_no_rhs(node.get_variables()[0].get_name())
         Logger.log_message(error_position=node.get_source_position(), log_level=LoggingLevel.ERROR,
                            code=code, message=message)
     return
 def visit_declaration(self, node):
     """
     Checks the coco on the current node.
     :param node: a single declaration.
     :type node: ast_declaration
     """
     for var in node.get_variables():
         symbol = node.get_scope().resolve_to_symbol(var.get_complete_name(), SymbolKind.VARIABLE)
         # first check that all initial value variables have a lhs
         if symbol is not None and symbol.is_init_values() and not node.has_expression():
             code, message = Messages.get_no_rhs(symbol.get_symbol_name())
             Logger.log_message(error_position=var.get_source_position(), code=code,
                                message=message, log_level=LoggingLevel.WARNING)
         # now check that they have been provided with an ODE
         if symbol is not None and symbol.is_init_values() \
                 and not symbol.is_ode_defined() and not symbol.is_function:
             code, message = Messages.get_no_ode(symbol.get_symbol_name())
             Logger.log_message(error_position=var.get_source_position(), code=code,
                                message=message, log_level=LoggingLevel.WARNING)
         if symbol is not None and symbol.is_init_values() and not symbol.has_initial_value():
             code, message = Messages.get_no_init_value(symbol.get_symbol_name())
             Logger.log_message(error_position=var.get_source_position(), code=code,
                                message=message, log_level=LoggingLevel.WARNING)
     return