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"
|