HTML

Beschrijving

Tom heeft geen GUI. 's Sneu voor Tom. Maar hij wil wel op het internet kunnen surfen. Het probleem ligt niet in het ophalen van de documenten, als wel in de weergave daarvan op zijn computerscherm. Daarom heeft Tom besloten zelf een browser voor tekst-schermen te schrijven, zoiets als Lynx. Tom is erin geslaagd diverse HTML-tag's te herkennen en de meeste kan hij ook verwerken, maar hij heeft nog problemen met tabellen.

Het Probleem

Gegeven een correcte HTML-tabel, maak een versie die geschikt is voor op een computer-scherm (80 tekens breed). Voor de minder fervente Web-page-bouwers onder ons: Een tag is een reeks tekens, beginnend met een `<' en eindigend met een `>', bijvoorbeeld <tt><HTML></tt> en <tt></HTML></tt>.

De Invoer

Een regel met daarop het aantal runs. Daarna per run een correcte HTML-tabel tabel\ (in EBNF-notatie):
}' item\ + `{\tt }' item}' stringteken
tabel `{\tt }' line\ + `{\tt
}'
line `{\tt
`{\tt }' string\ $\star$ `{\tt
teken\ +
`{\tt a}'-`{\tt z}' $|$ `{\tt A}'-`{\tt Z}' $|$ `{\tt 0}'-`{\tt 9}' $|$ `{\tt !}' $|$ `{\tt /}'
Merk op dat onze tags (i.t.t. de echte HTML-tags) alleen hoofdletters bevatten. Whitespace (spaties, newlines, carriage return en tabs) kan overal tussendoor aanwezig zijn (behalve binnen een tag en binnen een string, omdat in de set van tekens geen whitespace voorkomt). Tevens bevatten strings niet alle mogelijke tekens, met name het kleiner-dan-teken mist.

De Uitvoer

Per run moet een ASCII-versie van de HTML-tabel gegeven worden, dat wil zeggen:

Voorbeeld

Bij de invoer
1
<TABLE>
  <TR>
    <TD>Hello</TD>
  </TR>
  <TR>
    <TD></TD>
    <TD>world!</TD>
  </TR>
</TABLE>
<
hoort de uitvoer
+-------+--------+
| Hello |        |
+-------+--------+
|       | world! |
+-------+--------+