14-06-2013, 11:27
Sea un LP en el que la sentencia de iteración está formada por la palabra REPETIR y la condición tiene que estar, obligatoriamente, encerrada entre paréntesis; luego le sigue una o varias sentencias separadas por una "coma". Termina la sentencia de iteración con un ; .
Suponga que la condición y la sentencia son terminales para no tener que desarrollarlas.
Escriba una descripción BNF del lenguaje descripto.
Bueno, yo intenté hacerlo de las tres formas: ALGOL, Pascal y ANSI C, pero creo que le estoy errando en algo...
Pascal:
<sentencia de iteracion> ::= REPETIR while (condicion) do <sentencias>;
<sentencias> ::= {sentencia,} sentencia
ALGOL:
<sentencia de iteracion> ::= REPETIR while (condicion) do <sentencias>;
<sentencias> ::= sentencia | <sentencias>, sentencia
ANSI C:
sentenciaDeIteracion: REPETIR while (condicion) do sentencias;
sentencias: sentenciaop, sentencias | sentencia
Si alguien me lo puede corregir, se lo agradezco un montón!!
Suponga que la condición y la sentencia son terminales para no tener que desarrollarlas.
Escriba una descripción BNF del lenguaje descripto.
Bueno, yo intenté hacerlo de las tres formas: ALGOL, Pascal y ANSI C, pero creo que le estoy errando en algo...
Pascal:
<sentencia de iteracion> ::= REPETIR while (condicion) do <sentencias>;
<sentencias> ::= {sentencia,} sentencia
ALGOL:
<sentencia de iteracion> ::= REPETIR while (condicion) do <sentencias>;
<sentencias> ::= sentencia | <sentencias>, sentencia
ANSI C:
sentenciaDeIteracion: REPETIR while (condicion) do sentencias;
sentencias: sentenciaop, sentencias | sentencia
Si alguien me lo puede corregir, se lo agradezco un montón!!