Analisando propostas

Análisis léxico y sintáctico

Publicado em 27 de Setembro de 2021 dias na TI e Programação

Sobre este projeto

Aberto

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

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Criar um novo site personalizado
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho uma ideia geral
Disponibilidade requerida Conforme necessário
Funções necessárias Fazer o design de uma landing page, Desenvolvedor

Prazo de Entrega: 28 de Setembro de 2021

Habilidades necessárias

Outro projetos publicados por J. A.