| 
                                
                                     
                                 | 
                            
/*
 * 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;
}