import copy


def convert_to_lexical(table, table_dimensions=2):
    """Converts each value in the table to a lexical type (str).
    
    Args:
        table (list of lists): The table to convert. 2D List.
        table_dimensions(int): The dimensions of the input table. Assumes 2-D
    """
    if table_dimensions <= 0:
        return None
    
    new_table = []
    if table_dimensions == 1: # Exit step
        for item in table:
            item = str(item)
            item_copy = copy.deepcopy(item)
            new_table.append(item_copy)
    
    else: # Recursive step
        for row in table:
            new_table.append(convert_to_lexical(row, table_dimensions=table_dimensions-1))
    
    return new_table