def line_list(filename):
    """(Internal) Returns a list of tuples (indentation-level, line) one for every line

    Empty lines, comments and extra whitespace are striped out.
    Indents are expected to be 4 spaces.

    :param filename: Path of the asl file name (may be relative or absolute).
    :type filename: str
    :returns: List of every content line with the indentation-level as a tuple
    :rtype: [(int, str)]
    """

    decode_asl_file = open(filename, "r")
    lines = decode_asl_file.readlines()
    processed_lines = []
    for line in lines:
        assert int(line.find(line.lstrip())) % 4 == 0
        asl_indents = int(line.find(line.lstrip()) / 4)
        comment_start = line.find("//")
        if comment_start != -1:
            line = line[:comment_start]
        line = line.strip(" \t\n")
        if line != "":
            processed_lines += [(asl_indents, line)]
    return processed_lines