Skip to content

francohilt/lexer_parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Parser

Objetivo

Implementar un analizador sintáctico descendente para una gramática especificada.

Enunciado

El tipo de ASDR deberá ser implementado mediante procedimientos, esto es, deberá haber un procedimiento Principal, un procedimiento Procesar y luego un procedimiento por cada no terminal de la gramática. El programa que resulte de la implementación deberá aceptar una cadena y luego indicar si dicha cadena pertenece al lenguaje generado por la grmática y además deberá indicar qué producciones de la gramática deben ser usadas para derivar la cadena de entrada.

Gramática

El símbolo distinguido es Programa. Los terminales se hallan entre “ ”, por ejemplo “var” es un terminal llamado var . Los no terminales no se hallan entre “ ” y siempre comienzan en mayúsculas, pudiendo contener mayúsculas intermedias para aclarar su significado. Terminales y No Terminales se hallan separados por espacios en blanco para claridad de la gramática.

Gramática Sintáctica

Programa → Declaracion “;” Sentencia
| Sentencia
Declaracion → Declaracion “;” Declaracion
| Sentencia Sentencia → Sentencia “;” Sentencia
| Identificador “:=” Expresion
| ”si” Expresion “entonces“ Sentencia “sino” Sentencia
| ”si” Expresion “entonces“ Sentencia
| “mientras” Expresion “hacer” Sentencia
Expresion → Literal
| Numero
| Identificador
| Expresion Op Expresion
| Expresion “[“ Expresion ”]”
| Expresion “(“ Expresion ”)”
| “aceptar” Literal Identificador
| “mostrar” Literal ListaIdentificadores
ListaIdentificadores → Identificador
| Identificador “,” ListaIdentificadores

Gramática Léxica

Op → Relop
| Mulop
| Sumop
Relop → “== “| “>” |”<” | “>=” | “<= “ | “!=”
Mulop → “*“| “/” |”mod” | “and”
Sumop → “+“| “-” |”or”
Numero → ListaDigito
| ListaDigito "." ListaDigito
ListaDigito → Digito
| Digito ListaDigito
Literal → “’” ListaSimbolos “’”
Identificador → Letra
| Letra ListaSimbolos
ListaSimbolos → Letra
| Digito
| Letra ListaSimbolos
| Digito ListaSimbolos
Letra → “a”| ... |“z” | “A”| ... |“Z”
Digito → “0”| ... |“9”

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages