Nell'header hai dichiarato il primo parametro di print_grammar di tipo Grammar, ma nella sua definizione nel .cpp (e nell'uso che ne fai effettivamente) il primo parametro è un puntatore a Grammar. Correggi l'header e dovrebbe andare a posto.

(Tra l'altro hai fatto questo errore anche in altre funzioni...)