编译实验二

来源:互联网 发布:淘宝中老年服装模特 编辑:程序博客网 时间:2024/06/15 18:15

#include <iostream>#include <stdio.h>using namespace std;const int N=1e5+5;char s[N];int p=0,flag;void T();void E1();void F();void T1();void E(){    T(),E1();}void T(){    F(),T1();}void E1(){    if(s[p]=='+')    {        p++,T(),E1();    }    else;}void T1(){    if(s[p]=='*')    {        p++,F(),T1();    }    else;}void F(){    if(s[p]=='(')    {        p++,E();        if(s[p]!=')')flag=1;        else p++;    }    else if(s[p]=='i')p++;    else flag=1;}int main(){    gets(s);    flag=0;    E();    if(!s[p]&&!flag)puts("accept");    else puts("not accept");    return 0;}

问题 A: 例 5.16 递归下降法

时间限制内存限制提交解决1 sec128 MB557256
[提交][状态][讨论版]

题目描述

Ø已知文法G

E→TE'

T→FT'  

E'→+TE' |ε
T'→*FT' |ε

F→(E) | i 

LL(1)文法
编写一个递归下降LL(1)分析程序 判断文法G所能接受的串。

输入

输入由终止符构成的符号串

输出

如果能够识别符号串,输出accept

否则输出: not accept

样例输入

i+i*i

样例输出

accept
0 0
原创粉丝点击