Input
8
E E+T
T T*F
E T
T F
F (E)
F i
E E-T
T T/F
Output
G[E]:
E::=E+T | T | E-T
T::=T*F | F | T/F
F::=(E) | i
#include <iostream>
#include <vector>
#include <string>
#include <map>
using namespace std;
int main(int argc, char const *argv[])
{
struct { int Nv;string VN[10];} Vns={3,"E","T","F"};
struct { int Nt;string VT[10];} Vts={7,"+","-","*","/","(",")","i"};
struct { int Np;string PL[20],PR[20];} ps={0};
string S="E";
int N;
cin >> N;
std::map<string, vector<string> > m;
while(N--){
string a;
string b;
cin