UNA BNF A GRAFO SINTACTICO TRANSFORMANDO UNA BNF A GRAFO SINTACTICO
Transformación de una BNF a un grafo sintáctico. REGLA 1: Las producciones de la forma N α1 | α2 | … | αn Se representan con el siguiente grafo α1 α2 α3
Transformación de una BNF a un grafo sintáctico. REGLA 2: Los términos de la forma α a1 | a2 | … | an Se representan con el siguiente grafo an a1 a2
Transformación de una BNF a un grafo sintáctico. REGLA 3: Si un elemento tiene uno o cero ocurrencias, o sea [α ] Se representa con el siguiente grafo α
Transformación de una BNF a un grafo sintáctico. REGLA 4: Si un elemento se repite arbitrariamente ( 0 veces inclusive) , o sea {α} Se representa con el siguiente grafo α
Transformación de una BNF a un grafo sintáctico. REGLA 5: Los símbolos no terminales N se representaran dentro de un rectángulo. N REGLA 6: Los símbolos terminales t se representaran dentro de un circulo o un ovalo. t t
Ejemplo Diagrama de Conway Sea G = ( T , N , P , S ) que acepta expresiones aritméticas como: X + Y – X * Y T = { X , Y , + , - , * , / , ( , ) } N = { EXPR , TERM , FACTOR } P = { EXPR TERM | EXPR + TERM | EXPR – TERM TERM FACTOR | TERM * FACTOR | TERM / FACTOR FACTOR X | Y | ( EXPR ) S = {EXPR} TERM EXPR EXPR + TERM EXPR - TERM FACTOR TERM TERM * FACTOR TERM / FACTOR X FACTOR Y ( ) EXPR Diagrama de Conway
Ejemplo <entero> <digito> | <entero> <digito> <identificador> <letra> | <identificador> <digito> | <identificador> <letra> <param_prog> ( <lista_id> ) <lista_id> <identificador> | <lista_id> , <identificador> ENTERO PARAM_PROG DIGITO ( LISTA_ID ) IDENTIFICADOR LISTA_ID LETRA IDENTIFICADOR LETRA , DIGITO