输入输出文法2

Description

输入开始符号,非终结符,终结符,产生式
按非终结符顺序输出产生式;

Input

 输入开始符号;
非终结符个数,非终结符,空格符分隔;
终结符个数,终结符,空格符分隔;
产生式的个数,各产生式的左边和右边符号,空格符分隔;

 

Output

 G[开始符号]:
按非终结符顺序输出各产生式;

Sample Input:

Z
8 Z E F P G T Q S
3 + * i
18
Z E+T
E E
P G
F F
P G
G G
T T*i
Q E
S i
E S+F
F FP
G GG
Q E+F
E T
F P
G F
Q T
Q S

Sample Output:

G[Z]:
Z::=E+T
E::=E | S+F | T
F::=F | FP | P
P::=G | G
G::=G | GG | F
T::=T*i
Q::=E | E+F | T | S
S::=i

Code:

#include <iostream>
#include <vector>
#include <string>
#include <map>
using namespace std;
int main(int argc, char const *argv[])
{
	// input data
	string S;
	struct
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值