语法分析器C语言实现
(2009-12-19 18:56:04)
标签:
语法分析编译原理c语言实现it |
分类: 操作系统C/C 源码 |
#include"stdlib.h"
#include"stdio.h"
#include"string.h"
#include <windows.h>
typedef struct
{
char
R;
char
r;
int
flag;
}array;
array F[30];
#include"stdio.h"
#include"string.h"
#include <windows.h>
typedef struct
{
}array;
array F[30];
typedef struct
{
char
E;
char
e;
}charLode;
{
}charLode;
typedef struct
{
charLode
*base;
int
top;
}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)
{
charstack
sta;
charLode
ww;
charLode
w;
int
i=0,k;
char
a,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++;
}
else
if(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;
{