public boolean addRightmostStep(Production p) { SymbolString current = createResult(); for (int i = current.size() - 1; i >= 0; i--) { if (Grammar.isVariable(current.get(i))) { return this.addStep(p, i); } } return false; }