def visit_Num(self, num: ast.Num) -> int: """ Verifies if the number is an integer :param num: the python ast number node :return: returns the value of the number """ if not isinstance(num.n, int): # only integer numbers are allowed self._log_error( CompilerError.InvalidType(num.lineno, num.col_offset, symbol_id=type(num.n).__name__) ) return num.n
def visit_Constant(self, constant: ast.Constant) -> Any: """ Visitor of constant values node :param constant: the python ast constant value node :return: the value of the constant """ if isinstance(constant, ast.Num) and not isinstance(constant.value, int): # only integer numbers are allowed self._log_error( CompilerError.InvalidType(constant.lineno, constant.col_offset, symbol_id=type(constant.value).__name__) ) return constant.value