-zwei durchlaeufe:
+Beschreibung:
-(1) zeilen in das programmer format umwandeln, d.h.
-bis auf value werden eigentlich schon alle saplten aufgeloest. gleichzeitig wird
-eine tabelle mit labels und deren adresse aufgebaut (zwei tabellen fuer
-instr und data mem noetig)
+Der Parser braucht zwei Durchlaeufe. Der erste Durchlauf loest z.b. Labels auf
+und kuemmert sich darum welche Daten nach .data und welche nach .text gehoeren.
+Im zweiten Durchlauf werden die eigentlichen Instructions geparst und den
+entsprechenden Bytecode umgewandelt. Da zu diesem Zeitpunkt Labels und Defines
+schon in einer Datenstruktur vorhanden sind, sollte bezueglich
+Adressenaufloesung nicht mehr viel schief gehen.
-ausserdem:
-- auf .data und .text achten
-- .include
-- .org
-- .fill aufloesen
-- .define tabelle
-@hi und @lo behandeln?
+(1) Aufgaben der first Stage:
-(2) value das noch als string vorhanden ist, wird als instruction geparst.
+- .data <- done (wenn man nett ist, springt man nicht lustig zwischen diesen
+- .text <- done (sections hin und her... es *sollte* zwar gehen, aber [...] :p)
+- .include <- TODO: zu umstaendlich? :/ Mal schaun ob mir eine einfache Loesung
+ einfaellt. Eventuell mit gcc drueberfahren
+- .org <- done
+- .fill aufloesen <- TODO: atm nur einmalig 32bit moeglich
+- .define tabelle <- done
+
+- @hi und @lo behandeln? <- done
+
+
+(2) Values die noch als String vorhanden ist, werden als instruction geparst.
+ -> done
+
+
+einschraenkungen atm:
+- gleicher Namensraum fuer labels in .text und .data! wenn einer ein Label aus
+ .data laedt und dann aber eigentlich auf .text zugreift ist er selber schuld :/
+- Expr geht zwar, aber nicht geklammert
+- In manchen situationen kanns den parser noch an den einen oder anderen Space
+ oder Tab herhauen, also lieb sein!
+- viele viele mehr *testbench schreiben muss*