From: T. P. <ser...@gm...> - 2008-11-28 17:54:56
|
Uoolas pythonists! Ja funciona (al manco una mica) tot el meollo de les linies virtuals. Pels que no recordeu el tema, teniem un problema perque l'analitzador eliminava algunes linies del codi introduit per l'usuari al fer el preprocessat, i teniem problemes per fer correspondre el codi de sortida amb el d'entrada. Per això ara l'analitzador sintàctic té un atribut (que putes, una variable) anomenada virtuals. Per exemple, si introduim el codi .entry [linia en blanc] mov #4,r0 [linia en blanc] et: sob r0,et halt Queda d'aquesta manera després de sortir de l'analitzador .entry mov #4,r0 et: sob r0,et halt Per tant, la llista de linies virtuals ens indicarà la posició del codi preprocessat en que ha quedat la linia del codi inicial, amb un -1 per a les linies en blanc completament eliminades. [0, -1, 1, -1, 2, 2, 3] Gràcies a n'això podem fer coses tan xules com mostrar la posició de memòria de cada linia de codi quan estem en mode execució (ja implementat, adjunt una captura d'exemple), o fer un highlight de la linea de codi que estem executant actualment com feia el basilisk (next step). Salut! I ho pujaré quan algú m'expliqui com fer-ho amb el meu usuari servo_ -- "Ser serio no significa ir con cara de estar cagándote" |