文法:
E->TD
D->+TD|ε
T->FC
C->*FC|ε
F->i
LL(1)分析表:
测试示例:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;
typedef struct
{
char data[10];
int top;
int num;
} message;//栈内元素对象
void create(message*& m)
{
m = (message*)malloc(sizeof(message));
m->top = -1;
m->num = 0;
}
void push(message*& m, char i)//进栈操作
{
if (m->top < 10)
{
m->top++;
m->data[m->top] = i;
m->num++;
}
else
cout << "栈满";
}
char pop(message*& m)//出栈操作
{
char i;
if (m->top != -1)
{
i = m->data[m->top];
m->top--;
m->num--;
return i;
}
else
cout << "栈空";
}
void getStr(char str[])//将输入的以$结尾的字符串 保存于字符串数组中
{
int j = 0;
while (true)
{
cin >> str[j];
if (str[j]