程序输入/输出示例:
对下列文法,用LL(1)分析法对任意输入的符号串进行分析:
(1)E->TG
(2)G->+TG
(3)G->ε
(4)T->FS
(5)S->*FS
(6)S->ε
(7)F->(E)
(8)F->i
读文件:i+i*i#
输出结果:i+i*i#为合法符号串
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
struct Stack {
char s[30];
int top; //栈顶指针
}Stack;
char v1[6] = { 'i','+','*','(',')','#' };//终结符
char v2[5] = { 'E','G','T','S','F' };//非终结符
//预测分析表,用符号^来代替ε
char table[5][6][4] = { { "TG","","","","TG","" },
{ "","+T
LL(1)分析法实验:C++实现与解析

本文介绍了使用LL(1)分析法对特定文法进行符号串分析的实验,展示了C++代码实现,并给出了程序的输入/输出示例。通过LL(1)控制程序,根据栈顶内容、向前看符号和LL(1)分析表,对输入进行自上而下的合法性判断,实验结果表明'i+i*i#'为合法符号串。
最低0.47元/天 解锁文章
4139

被折叠的 条评论
为什么被折叠?



