Índice de entradas del conversor
Casos especiales: GO TO / GO SUB y variables con espacios
GO TO y GO SUB
Además de poder escribirse en una o dos palabras, he detectado que en un Spectrum +2/+3 (ya que en el «gomas» todo va por tokens y no es posible escribir otra cosa) se puede introducir GOTO20 y el sistema lo separa correctamente como GO TO 20.
Ante esto, he modificado el lexer para que, cuando reciba una sentencia de salto, la trate correctamente en todas sus variantes.
De esta forma, las sentencias GO TO 20, GOTO 20, GO TO20 o GOTO20 generan siempre los mismos dos tokens:
TK_GOTOTK_NUMERO 20
Y lo mismo ocurre con GOSUB, generando correctamente TK_GOSUB y TK_NUMERO.
Nombres de variables con espacios
Realmente no he visto ningún programa que utilice nombres de variables con espacios. Por tanto, he optado por simplificar el caso: si se detectan espacios en un nombre de variable, se eliminan directamente, generando un nombre compacto.
Así, cuando recibo:
LET ANTES O DESPUES = 4
El lexer genera directamente:
TK_LETTK_VARIABLE antesodespues
No hay comentarios:
Publicar un comentario