亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? global.cpp

?? 編譯原理實(shí)驗(yàn)
?? CPP
字號:
/**** global.h ******************************/

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

#include <ctype.h>
#define BSIZE 128
#define NONE -1
#define EOS '\0'

#define NUM 256 
#define DIV 257
#define MOD 258
#define ID 259
#define DONE 260

int tokenval = NONE;
int lineno=0;
struct entry { /* from of symbol table entry */
	char *lexptr;
	int token;
};

struct entry symtable[];



/************* error.c **********************************************/

//#include "global.h"
void error(char *m) 
//char *m;
{
	fprintf(stderr,"line %d:%s\n",lineno,m);
	exit(1);
}
/******* parser.c ***********************************************************/

//#include "global.h"
int lexan();
void expr();
void match(int t);
void term();
void emit(int t,int tval);
void factor();
int lookup(char s[]);
int insert(char s[],int tok);
int lookahead;



//int lookahead;
void parse()
{
	lookahead=lexan();
	while (lookahead !=DONE)
	{
		expr();match(';');
	}
}
void expr()
{
	int t ;
	term();
	while(1)
		switch (lookahead){
case '+':
case '-':
			t=lookahead;
			match(lookahead);term()
				;emit(t,NONE);
			continue;
default:
	return;
	}
}
void term()
{
	int t;
	factor();
	while(1)
		switch (lookahead){
case '*':
case '/':
case DIV:
case MOD:
			t=lookahead;
			match(lookahead);
			factor();
			emit(t,NONE);
			//continue;
default:
	return;
	}
}
void factor()
{
	switch (lookahead){
	case'(':
			match('(');expr();match(')');break;
	case NUM:
			emit(NUM,tokenval);match(NUM);break;
	case ID:
			emit(ID,tokenval);match(ID);break;
	default:
		error("syntax error");
	}
}


void match(int t)
      
{
	if (lookahead==t)
		lookahead=lexan();
	else error("sytax error");
}

/**** lexer.c *****************************************************/

//#include "global.h"
char lexbuf [BSIZE];
//int lineno =1;
//int tokenval = NONE;

int lexan()
{ 
	int t;
    while(1){
		t=getchar();
		if(t==' '|| t=='\t')
			;
		else if(t=='\n')
			lineno=lineno+1;
		else if (isdigit(t))
		{
			ungetc(t,stdin);
			scanf("%d",&tokenval);
			return NUM;
		}
		else if (isalpha(t))
		{
			int p,b=0;
			while (isalnum(t)){
				lexbuf[b]=t;
				t=getchar();
				b=b+1;
				if (b>=BSIZE)
					error("compiler error");
			}
			lexbuf[b]= EOS;
			if (t!= EOF)
				ungetc(t,stdin);
			p=lookup(lexbuf);
			if (p==0)
				p=insert(lexbuf,ID);
			tokenval=p;
			return symtable[p].token;
		}
		else if (t==EOF)
			return DONE;
		else {
			tokenval= NONE;
			return t;
		}
	}
}



				
/***** emitter.c*************************************************************/

//#include "global.h"
//int t,tval;
void emit(int t,int tval)
         
{
	switch(t){
	   case'+':case '-':case'*':case'/':
			printf("%c\n",t);break;
	   case DIV:
		    printf("DIV\n");break;
       case MOD:
		    printf("MOD\n");break;
       case NUM:
		    printf("%d\n",tval);break;
       case ID:
		   printf("%s\n",symtable[tval].lexptr);break;
	   default:
		   printf("token %d,tokenval %d\n",t,tval);
	}
}
/******** symbol.c**************************************************/

//#include "global.h"
#define STRMAX 999
#define SYMMAX 100
char lexemes[STRMAX];
int lastchar = -1;
struct entry symtable[SYMMAX];
int lastentry=0;

int lookup(char s[])
    
{
	int p;
	for(p=lastentry;p>0;p=p-1)
		if (strcmp(symtable[p].lexptr,s)==0)
			return p;
		return 0;
}
int insert(char s[],int tok)

{
	int len;
	len= strlen(s);
	if(lastentry + 1>=SYMMAX)
		error("lexemes array full");
	lastentry = lastentry +1;
	symtable[lastentry].token=tok;
	symtable[lastentry].lexptr=&lexemes[lastchar + 1];
    lastchar = lastchar + len + 1;
	strcpy(symtable[lastentry].lexptr,s);
	return lastentry;
}

/****************************init.c******************************************/

//#include "global.h"

struct entry keywords[] ={
	"div",DIV,
    "mod",MOD,
	0,0
};
void init()
{
	struct entry *p;
	for(p=keywords;p->token;p++)
	{insert(p->lexptr,p->token);
	}
}

/**************** main.c************************************************/

//#include "global.h"
void main()
{
	init();

   parse();
	exit(0);
}
/************************************************************************/

















































































































































?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合激情| 欧美性猛交xxxxxxxx| 久久精品国产亚洲高清剧情介绍 | 色婷婷亚洲综合| 成人福利视频在线| 制服丝袜中文字幕亚洲| 精品人在线二区三区| 欧美大片顶级少妇| 久久色中文字幕| 国产婷婷一区二区| 亚洲国产精品v| 亚洲日本在线天堂| 一区二区三区色| 午夜天堂影视香蕉久久| 五月综合激情网| 日韩激情视频在线观看| 久久99精品国产91久久来源| 国产精品中文欧美| 成人黄色777网| 色综合咪咪久久| 欧美日韩午夜在线视频| 在线不卡中文字幕播放| 日韩亚洲国产中文字幕欧美| 日韩区在线观看| 国产午夜久久久久| 亚洲精品日韩综合观看成人91| 亚洲午夜av在线| 五月综合激情网| 国产在线精品国自产拍免费| 成人18精品视频| 欧美男同性恋视频网站| 欧美www视频| 国产精品美日韩| 樱桃国产成人精品视频| 日韩激情中文字幕| 成人综合日日夜夜| 欧美亚洲一区三区| 日韩午夜在线观看| 欧美另类一区二区三区| 欧美日本一区二区三区| 久久伊人中文字幕| 亚洲特级片在线| 天涯成人国产亚洲精品一区av| 久久精品国产澳门| 一本色道**综合亚洲精品蜜桃冫| 欧美一区二区精美| 国产精品久久久久影院亚瑟| 亚洲午夜精品17c| 国产精品伊人色| 91久久久免费一区二区| 欧美不卡一二三| 亚洲欧美在线高清| 美女mm1313爽爽久久久蜜臀| 不卡的av电影| 日韩亚洲欧美综合| 亚洲理论在线观看| 激情综合网天天干| 欧洲另类一二三四区| 久久青草国产手机看片福利盒子 | 国产精品一区二区在线播放| 色综合久久中文字幕综合网| 精品日韩欧美一区二区| 亚洲精品免费播放| 国产精品资源在线| 337p亚洲精品色噜噜噜| 亚洲激情男女视频| 国产盗摄精品一区二区三区在线 | 欧美日韩国产一区二区三区地区| 欧美激情中文字幕| 精品无码三级在线观看视频| 在线观看国产精品网站| 国产精品污网站| 麻豆精品久久久| 欧美日韩视频在线一区二区| 国产精品国产馆在线真实露脸| 美女国产一区二区三区| 欧美日韩国产小视频在线观看| 亚洲午夜在线观看视频在线| 久久久久国产一区二区三区四区| 一区二区三区在线视频播放| 国产河南妇女毛片精品久久久| 在线播放欧美女士性生活| 亚洲激情在线激情| fc2成人免费人成在线观看播放 | 亚洲一卡二卡三卡四卡五卡| 91香蕉视频污在线| 国产精品萝li| 国产成人丝袜美腿| 欧美草草影院在线视频| 丝袜诱惑亚洲看片| 欧美体内she精高潮| 日韩毛片高清在线播放| 波多野结衣亚洲一区| 国产日韩亚洲欧美综合| 国产一区二区三区最好精华液| 欧美一级在线视频| 日韩高清不卡在线| 911精品产国品一二三产区 | 91福利在线看| 亚洲乱码精品一二三四区日韩在线| 不卡的电影网站| 中文字幕国产一区| 99精品热视频| 亚洲色欲色欲www| 91麻豆福利精品推荐| 久久久99久久精品欧美| 狠狠色狠狠色综合系列| 久久免费电影网| 国产一区二区影院| 国产欧美一区二区精品性色超碰 | 精品在线亚洲视频| 精品区一区二区| 国产在线视频一区二区| 久久亚洲一级片| 狠狠色丁香婷综合久久| 国产亚洲一区二区在线观看| 国产盗摄女厕一区二区三区| 精品国产髙清在线看国产毛片| 九九视频精品免费| 国产亚洲精品久| 不卡免费追剧大全电视剧网站| 最新热久久免费视频| 色8久久精品久久久久久蜜| 亚洲高清视频中文字幕| 欧美一区二区精品| 国产成人免费视频网站高清观看视频| 久久久.com| 色综合久久天天| 亚洲一区二区三区四区五区黄| 成人app网站| 亚洲精品在线观看视频| 国产乱码一区二区三区| 亚洲欧洲成人自拍| 欧美日韩视频在线观看一区二区三区| 视频一区视频二区中文| 欧美tickling网站挠脚心| 国产suv一区二区三区88区| 亚洲男人的天堂在线观看| 欧美日本国产一区| 国产在线精品一区二区三区不卡| 国产精品色在线| 日本成人中文字幕在线视频| 中文字幕中文在线不卡住| 精品国产凹凸成av人网站| 欧美一区二区三区色| 欧美精品v国产精品v日韩精品| 色吧成人激情小说| 色欧美88888久久久久久影院| 懂色av一区二区三区免费观看| 国产另类ts人妖一区二区| 久久精品99国产国产精| 美女久久久精品| 国产精品123| 91在线观看一区二区| 99久久久无码国产精品| 在线亚洲高清视频| 欧美日韩日日骚| 日韩欧美国产午夜精品| 精品国产电影一区二区| 国产欧美日韩另类视频免费观看| 久久亚洲一级片| 国产精品乱子久久久久| 日本午夜精品视频在线观看| 欧美男同性恋视频网站| 亚洲柠檬福利资源导航| 亚洲美女在线一区| 亚洲人成亚洲人成在线观看图片| 中文字幕巨乱亚洲| 中文字幕一区在线观看| 中文字幕综合网| 久88久久88久久久| 99re热视频精品| 一级特黄大欧美久久久| 久久影音资源网| av日韩在线网站| 亚洲精品在线免费观看视频| 国产尤物一区二区在线| 五月婷婷另类国产| 自拍偷拍亚洲综合| 久久这里只精品最新地址| 欧美日韩二区三区| 色综合av在线| aaa亚洲精品一二三区| 久久国产婷婷国产香蕉| 一区二区三区精品在线观看| 中文av一区二区| 精品播放一区二区| 欧美一卡二卡三卡四卡| 欧美视频精品在线| 91小视频免费观看| 成人黄色免费短视频| 国产综合色精品一区二区三区| 亚洲成av人片www| 亚洲一区免费观看| 亚洲人精品一区| 国产精品久久久久影院色老大| 日本一区二区三区在线不卡| 久久久久久综合| 精品国产成人系列| 欧美精品一区男女天堂|