目标任务
实现 LL(1)分析中控制程序(表驱动程序);完成以下描述算术表达式的 LL(1)文法的 LL(1)分析程序。
G[E]: E→TE'
E'→ATE' |ε
T→FT'
T'→MFT' |ε
F→ (E)|i
A→+|-
M→*|/
说明:终结符号 i 为用户定义的简单变量,即标识符的定义。
// Compiler3.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string>
#include <stack>
#include <iostream>
using namespace std;
string LL1_table[7][8];
char Vn[7] = {'E','X','T','Y','F','A','M'}; //非终结符,E'转化为X,T'转化为Y
char Vt[8] = {'i','+','-','*','/','(',')','#'}; //终结符
int find_Vn(char s) //查找非终结符
{
for (int i = 0; i < 7; i++)
{
if (Vn[i] == s)
return i;
}
return -1;
}
int find_Vt(char c) //查找终结符
{
for (int i = 0; i &l