private Dictionary<Nonterminal, int> BuildRToJ(ISet<Nonterminal> nonterminals_R) {
Dictionary<Nonterminal, int> RToJ = new Dictionary<Nonterminal, int>();
// for (int i = 0; i < nonterminals_R.Count; i++) {
var nonterminalIndex = 0;
foreach (var R in nonterminals_R) {
// var R = nonterminals_R[nonterminalIndex];
RToJ[R] = nonterminalIndex;
nonterminalIndex++;
}
return RToJ;
}