Está en la página 1de 1

Ejemplo de uso de la notacin BNF para la descripcin de un lenguaje de

programacin
(Fuente: J.P.Bennet; Introduction to Compiling Techniques;McGraw-Hill;1996)
<Programa>
<ListaDeFunciones>
<Funcin>
<ListaDeParmetros>
<ListaDeVariables>
<Variable>
<Alfanumrcio>
<Letra>
<Dgito>
<Sentencia>

::=
::=
::=
::=
::=
::=
::=
::=
::=
::=

<SentenciaDeAsignacin> ::=
<Expresin>
::=

<OperadorBinario>
<OperadorUnario>
<Entero>
<ListaDeArgumentos>
<ListaDeExpresiones>
<SentenciaDeImpresin>
<ListaDeImpresin>

::=
::=
::=
::=
::=
::=
::=

<ElementoDeImpresin>
<Texto>
<Carcter>
<CarcterImprimible>
<CarcterEscapado>
<SentenciaDeRetorno>
<SentenciaNula>
<SentenciaCondicional>

::=
::=
::=
::=
::=
::=
::=
::=

<SentenciaWhile>
<Bloque>
<ListaDeDeclaraciones>
<Declaracin>
<ListaDeSEntencias>

::=
::=
::=
::=
::=

<ListaDeFunciones>
<Funcin> | <ListaDeFunciones> <Funcin>
FUNC <Variable> ( <ListaDeParmetros> ) <Sentencia>
<ListaDeVariables> |
<Variable> | <ListaDeVariables> , <Variable>
<Letra> | <Variable> <Alfanumrico>
<Letra> | <Dgito>
a | b | ... | y | z
0 | 1 | ... | 8 | 9
<SentenciaDeAsignacin> | <SentenciaDeRetorno> |
<SentenciaDeImpresin> | <SentenciaNula> |
<SentenciaCondicional> | <SentenciaWhile> | <Bloque>
<Variable> := <Expresin>
<Expresin> <OperadorBinario> <Expresin> |
<OperadorUnario> <Expresin> | ( <Expresin> ) | <Entero> |
<Variable> | <Variable> (<ListaDeArgumentos> )
+|-|*|/
<Dgito> | <Entero> <Dgito>
<ListaDeExpresiones> |
<Expresin> | <Expresin> , <ListaDeExpresiones>
PRINT <ListaDeImpresin>
<ElementoDeImpresin> |
<ListaDeImpresin> , <ElementoDeImpresin>
<Expresin> | <Texto>
<Carcter> | <Carcter> <Texto>
<CarcterImprimible> | <CarcterEscapado>
Cualquier carcter ASCII imprimible
\n
RETURN <Expresin>
CONTINUE
IF <Expresin> THEN <Sentencia> FI |
IF <Expresin> THEN <Sentencia> ELSE <Sentencia> FI
WHILE <Expresin> DO <Sentencia> DONE
{ <ListaDeDeclaraciones> <ListaDeSentencias> }
<Declaracin> <ListaDeDeclaraciones> |
VAR <ListaDeVariables>
<Sentencia> | <ListaDeSentencias> <Sentencia>

También podría gustarte