• 大小: 2KB
    文件类型: .c
    金币: 2
    下载: 0 次
    发布日期: 2024-02-07
  • 语言: 其他
  • 标签:

资源简介

文法:E->TE' E'->+TE'|ε T->FT' T'->*FT'|ε F->(E)|i 构造上述LL(1)文法的递归下降分析程序

资源截图

代码片段和文件信息

/*试构造如下LL(1)文法的递归下降分析程序
文法: 见书本62页 (4.2)
    E->TE‘
    E‘->+TE‘|ε
    T->FT‘
    T‘->*FT‘|ε
    F->(E)|i
  ________________________________________________
    FIRST(E)={(i}  
    FIRST(E‘)={+ε}        FOLLOW(E‘)={)#}
    FIRST(T)={(i}          
    FIRST(T‘)={*ε}        FOLLOW(T‘)={+)#}
    FIRST(F)={(i}
    
注:因为E‘T‘可能会自动匹配所以要用到它们的FOLLOW集
*/


#include
#include
#include
char ch;

FILE *fp1; 

int e()
{
    if(ch==‘(‘||ch==‘i‘)
    {
        if(t()==1)
        {
            if(eprime()==1) return 1;
        }
    }
    return 0;
}
int t()
{
    if(ch==‘(‘||ch==‘i‘)
    {
        if(f()==1)
        {
            if(tprime()==1) return 1;
        }
    }
    return 0;
}
int eprime()
{
    if(ch==‘+‘)
    {
        ch=fgetc(fp1);
        if(t()==1)
        {
            if(eprime()==1) return 1;
            else return 0;
        }
        else return 0;
    }
    else if(ch==‘)‘||ch==‘#‘)
  

评论

共有 条评论

相关资源