Universidad de Costa Rica
|
|
Figura 1:
Ejecución de
FOR numero := 1 TO N DO BEGIN
suma := 0;
temp := numero;
WHILE temp <> 0 DO BEGIN
digito := temp MOD 10; { <- }
suma := suma + (digito * digito * digito);
temp := temp DIV 10;
END;
END;
VAR val
numero: 153
temp: 15
suma: 27
digito: 3
Armstrong.pas
Examine cuidadosamente el programa que usó en la primera tarea programada, para obtener una lista de los componentes léxicos ("tokens") que contiene el lenguaje PasAHO.
Luego obtenga los enunciados de las tareas programadas
segunda y
tercera del
semestre anterior, y con base
en ellos especifique e implemente la función
Extractor_yylex()
y la clase Token
para
el lenguaje PasAHO.
Una vez que haya obtenido la función
Extractor_yylex()
, úsela para implementar un
programa que reciba de entrada un archivo que contenga un programa
escrito en el lenguaje PasAHO y produzca la lista de los tokens y
lexemas. Por ejemplo, si su programa recibiera de entrada el
bloque de código de la
Figura 1, en las sucesivas invocaciones
a la función Extractor_yylex()
produciría la siguiente lista de tokens y lexemas:
- token == FOR
lexema == "FOR"
- token == ID
lexema == "numero"
- token == ASSIGN
lexema == ":="
- token == LITERAL
lexema == "1"
- token == TO
lexema == "TO"
- token == ID
lexema == "N"
- token == DO
lexema == "DO"
- token == BEGIN
lexema == "BEGIN"
- ...
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
|
Adolfo Di Mare <adolfo@di-mare.com>.
|