:: Estás en: Inicio / Ejemplos
/*
 * Otro ejemplo de factorizacion para convertir a LL(1)
 */

global
{
    analysis    LL1;
    nonterminal Z, N, A, C, H;
    terminal    b, c, j, t, k, h, n, z;

    prod_comunes =
    {
        N := b k | c H;
        A := h N | z;
        H := n   | k;
    }
}

/*
 * Gramatica que no es ll1
 */
grammar gram_no_ll1
{
    Z := b N A c | N c | b j | c A | t;

    prod_comunes;
}

/*
 * Gramatica que es ll1
 */
grammar gram_ll1
{
    nonterminal Z1, Z2, Z3;

    Z  := b Z2  | c Z3 | t;
    Z2 := Z1    | k c;
    Z3 := H c   | A;
    Z1 := N A c | j;

    prod_comunes;
}