grammar sacarlambda{
terminal a,b,c;
nonterminal S,A,B,C;
axiom S;
productions{
S:=A B b | A B C;
C:=a b c | A B;
A:=a A | $;
B:=b B | $;
}
}
/*
ENG: We will apply the "nullable" algorithm to the grammar in order
to obtain the terminals that derivate in empty string.
ESP: Es una gramatica a la que vamos a aplicar el algoritmo "nullable"
que nos da los terminales que derivan en la cadena vacia.
*/
print(sacarlambda);
nullable(sacarlambda);
/*
ENG: Now we are going to use the "remnullable" algorithm for eliminate the
empty word and then we will see the result.
ESP: A continuacion vamos a realizar el algoritmo "remnullable" que es el de
eliminacion de palabra vacia y veremos como queda la gramatica.
*/
sinlambda=remnullable(sacarlambda);