; //获取右部Р if((temp[0] > 'Z' || temp[0] < 'A') && temp.length() == 1){ //终结符Р lang[i].last.push_back(temp[0]);Р }Р else if(temp.length() >= 3){ //终结符Р if(temp[1] > 'Z' || temp[1] < 'A')Р lang[i].last.push_back(temp[1]);Р else if(temp[2] > 'Z' || temp[2] < 'A') //终结符Р lang[i].last.push_back(temp[2]);Р }Р }Р?}Р?while(sign == 0){ //迭代FirstVTР sign = 1;Р for(i = 0;i < lang.size();i ++){Р for(j = 0;j < lang[i].right.size();j ++){Р string temp = lang[i].right[j]; //获取右部Р if(temp.length() == 1 && (temp[0] <= 'Z' && temp[0] >= 'A')){//可以迭代Р for(int k = 0;k < lang.size();k ++){Р if(lang[k].left == temp[0]){ //找到了,添加元素Р for(int p = 0;p < lang[k].first.size();p ++){Р sign1 = 0;Р char ch = lang[k].first[p];Р for(int q = 0;q < lang[i].first.size();q ++){Р if(lang[i].first[q] == ch){ //包含了Р sign1 = 1;Р }