C code to Find First and Follow in a given Grammar

Minggu, 30 Maret 2014

/* C program to find First and Follow in a given Grammar. */

#include<stdio.h>
#include<string.h>

int i,j,l,m,n=0,o,p,nv,z=0,x=0;
char str[10],temp,temp2[10],temp3[20],*ptr;

struct prod
{
    char lhs[10],rhs[10][10],ft[10],fol[10];
    int n;
}pro[10];

void findter()
{
    int k,t;
    for(k=0;k<n;k++)
    {
        if(temp==pro[k].lhs[0])
        {
            for(t=0;t<pro[k].n;t++)
            {
                if( pro[k].rhs[t][0]<65 || pro[k].rhs[t][0]>90 )
                    pro[i].ft[strlen(pro[i].ft)]=pro[k].rhs[t][0];
                else if( pro[k].rhs[t][0]>=65 && pro[k].rhs[t][0]<=90 )
                {
                    temp=pro[k].rhs[t][0];
                    if(temp==S)
                        pro[i].ft[strlen(pro[i].ft)]=#;
                    findter();
                }
            }
            break;
        }
    }
}

void findfol()
{
    int k,t,p1,o1,chk;
    char *ptr1;
    for(k=0;k<n;k++)
    {
        chk=0;
        for(t=0;t<pro[k].n;t++)
        {
            ptr1=strchr(pro[k].rhs[t],temp);
            if( ptr1 )
            {
                p1=ptr1-pro[k].rhs[t];
                if(pro[k].rhs[t][p1+1]>=65 && pro[k].rhs[t][p1+1]<=90)
                {
                    for(o1=0;o1<n;o1++)
                        if(pro[o1].lhs[0]==pro[k].rhs[t][p1+1])
                        {
                                strcat(pro[i].fol,pro[o1].ft);
                                chk++;
                        }
                }
                else if(pro[k].rhs[t][p1+1]==

Related Posts by Categories

0 komentar:

Posting Komentar