Gramatica LL Candidata
Enviado por ABSO3007 • 26 de Septiembre de 2014 • 272 Palabras (2 Páginas) • 229 Visitas
OBJETIVOS
• Proponer una gramática LL candidata.
• Describir las características de la solución.
• Diseñar un programa de cómputo (en el lenguaje de elección) que implemente el reconocer sintáctico especificado.
INSTRUCCIÓN DE SELECTIVA MULTIPLE SELEC CASE BASANDOSE EN LA SINTAXIS DE VISUAL BASIC. NET.
1. DISEÑO DE LA GRAMÁTICA.
V.1.4
1 IS => Select_case (ID) <<Casos>> <<Dom>> End_select
2 Casos => Case <<Valor>> <<Instrucciones>> <<más casos>>
3 4
Más Casos=> Є | Case <<Valor>> <<Instrucciones>> <<más casos>>
5 6
Dom=> Є | Case_Else <<Instrucciones>>
7 8
Instrucciones=> <<IS>> | Є
9
Valor=> Num
1 CARACTERISTICAS DE LA SOLUCIÓN.
ALCANSES Y LIMITACIONES
• La variable deberá estar contenida dentro del paréntesis.
• La variable deberá estar compuesta por solo letras.
• Solo se reconocerá números enteros sin signos.
• No reconocerá operadores aritméticos.
• No reconocerá signos de puntuación ni caracteres especiales.
• Admite select anidado.
• Case Else solo se admitirá como el último de los Case.
• Case Else podrá ser opcional.
• En los CASE solo reconocerá números 1-9.
• Las variables no admite guiones seguidos, debe por lo menos existir una letra de por medio.
CALCULO DE LOS PRIMEROS
FIRST (IS) = (SELECT CASE)
FIRST (CASOS) = (CASE)
FIRST (MAS CASOS) = (Є, CASE)
FIRST (DOM) = (Є, CASE_ELSE)
FIRST (INSTRUCCIONES) = FIRST (IS) = (SELECT CASE) U (Є ) = (SELECT_CASE , Є)
FIRST (VALOR) = (NUM)
CALCULO DE LOS SEGUNDOS
FOLLOW (IS) = $ U FOLLOW (INSTRUCCIONES)
FOLLOW (CASOS) = FIRST (DOM) = {CASE_ELSE , END_SELECT}
FOLLOW (DOM) = {END_SELECT}
FOLLOW (VALOR) = FIRST(INSTRUCCIONES) = {SELECT CASE} U FIRST(MAS CASOS) = {CASE}
= {SELECT_CASE, CASE} U FOLLOW(CASOS) ={CASE_ELSE , END_SELECT} U FOLLOW(MAS CASOS) = {SELECT_CASE, CASE, CASE_ELSE,
...