Ok.
Fare un pila da zero non è difficile, si tratta di incapsulare un array e un indice che indica l'elemento in cima alla pila.
Una bozza (molto incompleta) può essere la seguente:
codice:
public class PilaDiStringhe {
private String[] dati = new String[100]; // da far crescere all'occorrenza
private int ultimoIndice = -1;
public void push(String nuova) {
// TODO gestire ridimensionamento
dati[ultimoIndice++] = nuova;
}
public String pop() {
return dati[ultimoIndice--];
}
}
Per quanto riguarda la grammatica... Questa è fissata? Perché mi pare che scrivere un parser per una generica grammatica non è proprio banale