Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
|
|
CI-1322 Autómatas y compiladores
Analizador Léxico del Dragón en C++
Tome como base la implementación del analizador
léxico del libro del dragón
[ASU-86] y produzca un programa
C++ similar.
Compilers: Principles, Techniques, and Tools:
http://dragonbook.stanford.edu/
Cumpla con la siguiente lista de requerimientos:
- Para mostrar que su analizador léxico funciona,
escriba un programa que reciba como entrada un programa
dragón y grabe la lista de los tokens junto con
sus atributos.
- Use la versión en inglés del código
fuente.
- Respeta la estructura de archivos y directorios de la
implementación Java original.
- En lo posible, trate de que el programa C++ se parezca mucho
a la versión Java original.
- Incluya en el código C++ la explicación que
está en el libro de texto.
- Use la clase
"
lkptr
" para
facilitar la traducción Java → C++.
- Ponga la documentación
Doxygen en inglés al
final de cada archivo de implementación
.cpp
de manera que no quede cargado el texto del programa.
- Puede usar la implementación de
toString()
de la biblioteca
BUnit.h
.
- Recuerde dar el crédito correspondiente por usar el
trabajo de otros como base para el suyo.
(1) {
(2) int a; int b;
(3) a = 101; b = 32;
(4) }
token( { ) len( 1 ) #ln( 1 ) lexeme == {
token( BASIC ) len( 3 ) #ln( 2 ) lexeme == int
token( ID ) len( 1 ) #ln( 2 ) lexeme == a
token( ; ) len( 1 ) #ln( 2 ) lexeme == ;
token( BASIC ) len( 3 ) #ln( 2 ) lexeme == int
token( ID ) len( 1 ) #ln( 2 ) lexeme == b
token( ; ) len( 1 ) #ln( 2 ) lexeme == ;
token( ID ) len( 1 ) #ln( 3 ) lexeme == a
token( = ) len( 1 ) #ln( 3 ) lexeme == =
token( NUM ) len( 3 ) #ln( 3 ) lexeme == 101
token( ; ) len( 1 ) #ln( 3 ) lexeme == ;
token( ID ) len( 1 ) #ln( 3 ) lexeme == b
token( = ) len( 1 ) #ln( 3 ) lexeme == =
token( NUM ) len( 2 ) #ln( 3 ) lexeme == 32
token( ; ) len( 1 ) #ln( 3 ) lexeme == ;
token( } ) len( 1 ) #ln( 4 ) lexeme == }
token( ZERO ) len( 1 ) #ln( 4 ) lexeme ==
Entregue su tarea por
correo electrónico, como
lo hizo anteriormente.
Entrega de Tareas
Tiempo de entrega: |
1 semana |
Modalidad: |
En parejas |
|
Soluciones
Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2010
Derechos de autor reservados © 2010