语法分析器C语言实现
来源:互联网 发布:保密电话软件 编辑:程序博客网 时间:2024/05/02 23:51
#include"stdlib.h"
#include"stdio.h"
#include"string.h"
#include <windows.h>
typedef struct
{
charR;
charr;
intflag;
}array;
array F[30];
#include"stdio.h"
#include"string.h"
#include <windows.h>
typedef struct
{
}array;
array F[30];
typedef struct
{
charE;
chare;
}charLode;
{
}charLode;
typedef struct
{
charLode*base;
inttop;
}charstack;
{
}charstack;
char str[80][80],arr[80][80],brr[80][80];
int m,kk,p,ppp,FF=1;
char r[20];
int crr[30][30],FLAG=0;
char ccrr1[1][30],ccrr2[30][1];
void Initstack(charstack *s)
{
s->base=(charLode*)malloc(30*sizeof(charLode));
s->top=-1;
}
char r[20];
int crr[30][30],FLAG=0;
char ccrr1[1][30],ccrr2[30][1];
void Initstack(charstack *s)
{
}
void push(charstack *s,charLode w)
{
s->top++;
s->base[s->top].E=w.E;
s->base[s->top].e=w.e;
}
{
}
void pop(charstack *s,charLode *w)
{
w->E=s->base[s->top].E;
w->e=s->base[s->top].e;
s->top--;
}
{
}
int IsEmpty(charstack s)
{
if(s.top==-1)
return 1;
else
return 0;
}
int IsLetter(char ch)
{
if(ch>='A'&&ch<='Z')
return 1;
else
return 0;
}
{
}
int IsLetter(char ch)
{
}
int judge1(int n)
{
}
void judge2(int n)
{
}
int search1(char r[],int kk,char a)
{
}
void createF(int n)
{
}
void search(charLode w)
{
}
void FirstVT(int n)
{
charstacksta;
charLodeww;
charLodew;
inti=0,k;
chara,b;
Initstack(&sta);
while(i<=n)
{
k=3;
w.E=str[i][0];
a=str[i][k];
b=str[i][k+1];
if(!IsLetter(a))
{
w.e=a;
push(&sta,w);
search(w);
i++;
}
elseif(IsLetter(a)&&b!='\0'&&!IsLetter(b))
{
w.e=b;
push(&sta,w);
search(w);
i++;
}
else
i++;
}
while(!IsEmpty(sta))
{
pop(&sta,&ww);
for(i=0;i<=n;i++)
{
w.E=str[i][0];
if(str[i][3]==ww.E&&str[i][4]=='\0')
{
w.e=ww.e;
push(&sta,w);
{