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