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