Descripción sintáctica completa de Eva

Gramática BNF + CONDICIONES de CONTEXTO:

1. Los distintos dentro de cada en cada y dentro de cada

2. Cada contenido en una S tiene que haber sido declarado en un que contenga a S o bien pertenecer a una de un proc que contenga a S

3. Si hay más de uno _ “el más interno”

4. En input _ debe ser de tipo char

5. En call () _ debe ser de tipo proc y el número y tipo de los argumentos de la llamada deben coincidir con lo declarado para

6. En cons , _ debe ser de tipo string

7. debe ser de tipo char en y de tipo string en

Begin EJEMPLO DE PROGRAMA en Eva

char c

proc printword (string word)= (

neq tail word,“”: call printword (tail word) output head word )

proc control = begin string w

proc readword = ( cons c,w input c

neq c,space:call readword ) call skipblaks

call readword

neq w,”zz” : ( call control output space

call printword (w)) end

proc skipblancs = ( input c

eq c, space: call skipblanks ) call control

end

Variaciones de BNF

Herramientas notacionales añadidas para:

– reducir el tamaño de la gramática

– incrementar la claridad

No suponen mayor poder de expresión.

Fuente: Apuntes de Informática VII de la FCA de la UNAM