private void RemoveExtraneousNulls(List<Production> productions) {
if (productions.Count == 0) {
return;
}
for (int i = productions.Count - 1; i >= 0; i--) {
var production = productions[i];
if (production.Lhs == _startSymbol) {
continue;
}
if (production.IsEmpty) {
productions.RemoveAt(i);
}
}
}