def parse
      raise "No Timetable loaded!" unless @raw_timetable

      table_info = @@TIMETABLE_CODE_REGEX.match(get_info(@raw_timetable))
      timetable = Tableau::Timetable.new(table_info)

      table_count = 1
      table_data = @raw_timetable.xpath(xpath_for_table(table_count))

      while !table_data.empty?
        table_classes = parse_table(table_data)
        sort_classes(timetable, table_classes)
        table_data = @raw_timetable.xpath(xpath_for_table(table_count += 1))
      end
      timetable
    end
def parse
      raise "No Timetable loaded!" unless @raw_timetable

      table_info = @@TIMETABLE_CODE_REGEX.match(get_info(@raw_timetable))
      timetable = Tableau::Timetable.new(table_info)

      table_count = 1
      table_data = @raw_timetable.xpath(xpath_for_table(table_count))

      while !table_data.empty?
        table_classes = parse_table(table_data)
        sort_classes(timetable, table_classes)
        table_data = @raw_timetable.xpath(xpath_for_table(table_count += 1))
      end
      timetable
    end
Parse the Timetable for all Modules within
 Returns: A Tableau::Timetable