3 Der Parser braucht zwei Durchlaeufe. Der erste Durchlauf loest z.b. Labels auf
4 und kuemmert sich darum welche Daten nach .data und welche nach .text gehoeren.
5 Im zweiten Durchlauf werden die eigentlichen Instructions geparst und den
6 entsprechenden Bytecode umgewandelt. Da zu diesem Zeitpunkt Labels und Defines
7 schon in einer Datenstruktur vorhanden sind, sollte bezueglich
8 Adressenaufloesung nicht mehr viel schief gehen.
11 (1) Aufgaben der first Stage:
13 - .data <- done (wenn man nett ist, springt man nicht lustig zwischen diesen
14 - .text <- done (sections hin und her... es *sollte* zwar gehen, aber [...] :p)
15 - .include <- TODO: zu umstaendlich? :/ Mal schaun ob mir eine einfache Loesung
16 einfaellt. Eventuell mit gcc drueberfahren
18 - .fill aufloesen <- TODO: atm nur einmalig 32bit moeglich
19 - .define tabelle <- done
21 - @hi und @lo behandeln? <- done
24 (2) Values die noch als String vorhanden ist, werden als instruction geparst.
29 - gleicher Namensraum fuer labels in .text und .data! wenn einer ein Label aus
30 .data laedt und dann aber eigentlich auf .text zugreift ist er selber schuld :/
31 - Expr geht zwar, aber nicht geklammert
32 - In manchen situationen kanns den parser noch an den einen oder anderen Space
33 oder Tab herhauen, also lieb sein!
34 - viele viele mehr *testbench schreiben muss*