编译原理之语义分析(C语言)
(2011-04-18 00:19:32)
标签:
杂谈 |
编译原理之语义分析*(C语言)
一 继承的词法来自
//语义分析
//main.c
//@author langx
#include "stdio.h"
//定义I/O库所用的某些宏和变量
#include "string.h"
//定义字符串库函数
#include "conio.h"
//提供有关屏幕窗口操作函数
#include "ctype.h"
//分类函数
#define LEN 6
char prog[80]= {'\0'},
token[80]=
{'\0'};
//存放构成单词符号的字符串
char ch;
int syn,
//存放单词字符的种别码
n,
sum,
//存放整数型单词
m,p;
//p是缓冲区prog的指针,m是token的指针
char *rwtab[LEN]= {"begin","if","then","while","do","end"};
int kk,q;
struct
{
char
result1[8];
char
ag11[8];
char
op1[8];
char
ag21[8];
} quad[20];
char *factor();
char *expression_r();
int yucu();
char *term();
int statement();
int lrparser();
char *newtemp();
scaner();
emit(char *result,char *ag1,char *op,char *ag2);
int lrparser()
{
int
schain=0;
kk=0;
if
(syn==1)
{
scaner();
schain=yucu();
if(syn==6)
{
scaner();
一 继承的词法来自
http://blog.sina.com.cn/s/blog_67c9fc300100srad.html
二 继承的语法来自
http://blog.sina.com.cn/s/blog_67c9fc300100srar.html
============================================================================//语义分析
//main.c
//@author langx
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include "ctype.h"
#define LEN 6
char prog[80]= {'\0'},
char ch;
int syn,
char *rwtab[LEN]= {"begin","if","then","while","do","end"};
int kk,q;
struct
{
} quad[20];
char *factor();
char *expression_r();
int yucu();
char *term();
int statement();
int lrparser();
char *newtemp();
scaner();
emit(char *result,char *ag1,char *op,char *ag2);
int lrparser()
{

加载中…