Descripción del Proyecto:
Desarrollar un compilador parcial para una gramática simplificada del lenguaje de programación Pascal utilizando el meta-compilador JavaCC y la herramienta IDE Eclipse. La aplicación final deberá incluir un archivo fuente (
Program.pas) que represente un programa completo con código en Pascal correspondiente a los diagramas sintácticos proporcionados para este proyecto. El programa deberá generar como salida el resultado del análisis, indicando éxito o mostrando errores léxicos o sintácticos. Además, deberá mostrar en pantalla la cadena de caracteres resultante de las declaraciones writeln en el código analizado, junto con el número de constantes declaradas en el programa. Un ejemplo de salida después de ejecutar el compilador de Pascal:
Salida: 'hi world'
Número de constantes: 3
Número de variables: 4
Es importante para la creación del archivo .jj que identifiques qué elementos corresponden al análisis léxico y cuáles pertenecen al análisis sintáctico (te proporcionaré las imágenes de las especificaciones del lenguaje). De acuerdo con los diagramas sintácticos proporcionados en el proyecto, se recomienda considerar los siguientes símbolos como tokens:
Palabras reservadas del lenguaje:
program
const
var
type
integer
real
boolean
char
begin
end
if
then
writeln (aunque no es una palabra reservada, puede agruparse aquí)
Operadores:
not
/
or
mod
and
<
<=
<>
:=
Símbolos de puntuación:
.
,
:
(
)
..
Literales e Identificadores:
Letra
Dígito
Identificadores
Entero
Real
Carácter (considéralo como un token completo que incluye las comillas del carácter, por ejemplo: 'a')
Constante de Cadena (considéralo como un token completo que incluye las comillas de la cadena, por ejemplo: 'hello')
Nota: Para el símbolo llamado "character" que aparece en los diagramas sintácticos, considera que puede ser una letra, un dígito o cualquiera de los siguientes símbolos:
(espacio en blanco)
_ (guión bajo)
! (símbolo de admiración)
& (ampersand)
Reglas de Producción:
Todos los demás símbolos no terminales que aparecen en los diagramas sintácticos se pueden considerar como parte de las reglas de producción de una gramática.
Comentarios:
El compilador deberá reconocer comentarios de una sola línea en un programa Pascal. Los comentarios para este lenguaje se escriben dentro de llaves:
{ Este es un comentario de una sola línea }
Por lo tanto, deberás declarar la expresión regular para comentarios dentro de la sección SKIP en tu archivo .jj.
Contexto general del proyecto
El proyecto implica el desarrollo de un compilador parcial para una gramática simplificada del lenguaje de programación Pascal. Este compilador se construirá utilizando el meta-compilador JavaCC y la herramienta IDE Eclipse. La aplicación final deberá procesar un archivo fuente (Program.pas) que represente un programa completo en Pascal, siguiendo los diagramas sintácticos proporcionados para este proyecto.
Plazo de Entrega: No definido