:: Estás en: Inicio / Ejemplos
lexer globalLexer
%{
	tokens
	{
		b := "b";
		c := "c";
		j := "j";
		t := "t";
		k := "k";
		h := "h";
		n := "n";
		z := "z";
		nulos := [ \r\t\n];
	}
	pass nulos;
%}

/*
 * 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
{
	use globalLexer;
    Z := b N A c | N c | b j | c A | t;

    prod_comunes;
}

/*
 * Gramatica que es ll1
 */
grammar gram_ll1
{
	use globalLexer;
    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;
}
// b c n h b k c