Evaluando propuestas

Análisis léxico y sintáctico

Publicado el 27 Septiembre, 2021 en Programación y Tecnología

Sobre este proyecto

Abierto

En el repositorio de ejemplos para la materia:

https://bitbucket.org/abdul_itesm/compiladores_ago2021/ (Enlaces a un sitio externo.)

Encontrarás la carpeta proyecto_etapa1y2 con los archivos base para esta etapa del proyecto. Al correr cliente.py únicamente se imprimen los tokens reconocidos.

También hay una carpeta resources con archivos de pruebas tipo para las distintas etapas del compilador.

A continuación un esqueleto de cómo quedaría la gramática, esto es, el archivo Cool.g4 debe contener las definiciones correspondiente al capítulo 10 y 11 del manual de Cool.

Grammar Cool;         

program
    : ( klass ';' ) *
    ;

klass
    : klass type ( 'inherits' type )? '{' ( feature ';' )* '}'
    ;

feature
    : ...  #Method
    | ...  #Attribute
    ;

formal
    : ...
    ;

Expr
    :
    primary                                                        #base
    |  ...          #Simplecall
    |  ...          #If
    |  ...          #While
    |  ...          #Objectcall
    |  ...          #Let
    |  ...          #Case
    |  ...          #New
    |  ...          #Block
    |  ...          #At
    |  ...          #Neg
    |  ...          #Isvoid
    |  ...          #Mult
    |  ...          #Div
    |  ...          #Plus
    |  ...          #Less
    |  ...          #Lt
    |  ...          #Le
    |  ...          #Eq
    |  ...          #Not
    |  ...          #Assign
    ;

case_stat:
    ...
    ;

Let_decl:
    ...
    ;

Primary:
    ...Son 6 casos...
    ;



Se deberán reconocer los siguientes tokens:


Palabras reservadas:
KLASS FI IF IN INHERITS ISVOID LET LOOP POOL THEN ELSE WHILE CASE ESAC NEW OF NOT TRUE FALSE

Con expresión regular:
TYPE ID INTEGER STRING

Ignorar:
COMMENT LINE_COMENT WHITESPACE

Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Crear un nuevo sitio personalizado
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo una idea
Disponibilidad requerida Según se necesite
Roles necesarios Diseñar una landing page, Programador

Plazo de Entrega: 28 Septiembre, 2021

Habilidades necesarias

Otros proyectos publicados por J. A.