Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CONTENIDO
CONSIDERACIONES PREVIAS ................................................................................... 4
Integracin de JFlex ......................................................................................................... 5
1. Creacin de un proyecto nuevo ............................................................................ 5
2. Creacin de Lexer.flex....................................................................................... 6
3. Incorporacin del fichero de entrada al proyecto ................................................. 8
4. Compilacin con JFlex ......................................................................................... 8
5. Ejecucin del proyecto ....................................................................................... 11
6. Desactivacin de la compilacin automtica ..................................................... 14
Integracin de Cup ......................................................................................................... 16
7. Creacin de Parser.cup .................................................................................... 16
8. Compilando con Cup .......................................................................................... 16
9. Incorporando java_cup.runtime al proyecto....................................................... 17
10.
Creacin de la clase Inicio ........................................................................... 18
11.
Ejecucin del proyecto (con Cup) .................................................................. 21
Apndice 1 Lnea de rdenes....................................................................................... 22
Apndice 2 Automatizando la compilacin................................................................. 23
Apndice 3 Incluir clases auxiliares (Cup).................................................................. 25
FIGURAS
figura 1. New Project........................................................................................................ 5
figura 2. Datos del proyecto nuevo................................................................................... 6
figura 3. Opcin para crear un fichero nuevo................................................................... 6
figura 4. Especificando el nombre del fichero nuevo....................................................... 7
figura 5. Fichero 'Lexer.flex' recin creado ...................................................................... 7
figura 6. Men de herramientas externas.......................................................................... 8
figura 7. Ventana inicial de herramientas externas........................................................... 9
figura 8. Configuracin para ejecutar JFlex ..................................................................... 9
figura 9. Opciones para actualizar el proyecto ............................................................... 10
figura 10. Acceso rpido a las herramientas externas .................................................... 10
figura 11. Error al estar 'Lexer.flex' vaco ...................................................................... 11
figura 12. Acceso a las opciones de ejecucin del proyecto .......................................... 12
figura 13. Ventana inicial de opciones de ejecucin ...................................................... 13
figura 14. Creando una configuracin de ejecucin ....................................................... 13
figura 15. Especificando los argumentos del programa ................................................. 14
figura 16. Acceso rpido a las configuraciones de ejecucin......................................... 14
figura 17. Opcin de compilacin automtica................................................................ 15
figura 18. Configuracin para ejecutar Cup ................................................................... 16
figura 19. Importando 'java_cup.runtime'....................................................................... 18
figura 20. Opcin para crear una clase nueva................................................................. 19
figura 21. Creacin de una clase nueva .......................................................................... 20
figura 22. Nueva clase 'Inicio' con el mtodo 'main' ...................................................... 20
figura 23. Configuracin de ejecucin con Cup ............................................................. 21
figura 24. Lista de constructores del proyecto................................................................ 23
figura 25. Seleccionando los constructores de Cup y JFlex ........................................... 24
figura 26. Constructores que intervienen en el proyecto ................................................ 24
figura 27. Errores por falta de clases auxiliares de Cup ................................................. 25
figura 28. Propiedades del proyecto - Libraries ............................................................. 26
figura 29. Enlazando las clases de Cup al proyecto ....................................................... 27
figura 30. Clases a aadir al proceso de compilacin..................................................... 27
figura 31. Mensaje de aviso de filtros de exclusin ....................................................... 27
figura 32. Propiedades del proyecto con las clases auxiliares aadidas......................... 28
figura 33. Propiedades del proyecto - Order and Export................................................ 29
figura 34. Ficheros generados sin errores....................................................................... 29
figura 35. Propiedad Read-only de las clases externas incluidas ................................... 30
CONSIDERACIONES PREVIAS
Esta gua se ha desarrollado bajo las siguientes
condiciones de trabajo:
1.
2.
3.
4.
workspace = C:\workspace
directorio de JFlex = C:\JFlex
directorio de Cup = C:\Cup
java.exe utilizado = C:\j2sdk1.4.2_05\bin
Integracin de JFlex
Vamos a crear un proyecto Java donde se hace uso de la herramienta
JFlex. Se trata de un ejemplo muy sencillo, donde incluiremos un
analizador lxico representado por una clase llamada Lexer.
2. Creacin de Lexer.flex
A continuacin creamos el fichero Lexer.flex (nuestro analizador
lxico en JFlex). Para ello pulsamos el botn derecho del ratn sobre
el nombre del proyecto y seleccionamos la opcin NewFile (figura
3).
10
Si ejecutamos JFlex teniendo otro fichero seleccionado que no sea el .flex, nos saldr un error de
especificacin no vlida, ya que se est intentando compilar con JFlex dicho fichero incompatible.
2
Suponemos que se ha incluido la opcin %standalone en el fichero Lexer.flex para que la clase
Lexer generada tenga el mtodo main (si no fuese as habra que implementarla en otra clase aparte).
11
12
13
14
15
Integracin de Cup
Suponemos que el proyecto ya incluye el fichero Lexer.flex3, el de
entrada, y que est creada la configuracin para ejecutar JFlex.
7. Creacin de Parser.cup
Los pasos que hay que seguir para crear el fichero Parser.cup son
los mismos que para el fichero Lexer.flex cambiando el nombre en la
ventana de la figura 4.
Se supone que no est siendo utilizada la directiva %standalone (incompatible con el uso de Cup)
16
Si ejecutamos Cup teniendo otro fichero seleccionado que no sea el .cup, nos saldr un error, ya que se
est intentando compilar con Cup dicho fichero incompatible.
17
18
19
20
21
22
23
24
25
26
27
figura 32. Propiedades del proyecto con las clases auxiliares aadidas
28
29
30