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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lexer.cpp

?? 編譯原理課程設計中
?? CPP
字號:
#include <cstdio>
#include <cctype>
#include <map>
#include <string>
#include <cstring>
#include <utility>

#define BSIZE 100 //規定記號的長度小于100
#define NONE -1
#define EOS '\0'

#define NUM 256
#define ID 257
#define CONST 258
#define VAR 259
#define EQU 260
#define LESS_EQU 261
#define MORE_EQU 262
#define NOT_EQU 263
#define CALL 264
#define BEGIN 265
#define END 266
#define ODD 267
#define IF 268
#define THEN 269
#define WHILE 270
#define DO 271
#define DONE 273
#define PROCEDURE 274
#define EVU 275  //:=
#define LESS 276
#define MORE 277
#define FLOAT 278
using namespace std;

map<string,pair<int,int> > symtable;

struct entry
{
	char lexptr[BSIZE];
	int token;
};

char token[500][BSIZE];
int token_num;


//#include "global.h"

int lexan();
void init();
void print(int t,int tt);
void error();
int lookahead;

entry s[18]={{"const",CONST},
{"var",VAR},
{"=",EQU},
{"<=",LESS_EQU},
{">=",MORE_EQU},
{"<>",NOT_EQU},
{">",MORE},
{"<",LESS},
{"call",CALL},
{"begin",BEGIN},
{"end",END},
{"odd",ODD},
{"if",IF},
{"then",THEN},
{"while",WHILE},
{"do",DO},
{"procedure",PROCEDURE},
{":=",EVU}
};
char buf[BSIZE];
int b;
int lineno=1;
int tokenval=NONE;
double tokenval1;
int lexan()
{
	char t;
	map<string,pair<int,int> >::iterator iter;
	while(1)
	{
		t=getchar();
		if(t==' '||t=='\t')
		{
			return 0;
		}
		else if(t=='\n')
		{
			lineno++;
			return 0;
		}
		else if(isdigit(t))
		{
			ungetc(t,stdin);
			scanf("%d",&tokenval);
			t=getchar();
			if(t=='.')
			{
				ungetc(t,stdin);
				while(tokenval)
				{
					ungetc(tokenval%10+'0',stdin);
					tokenval/=10;
				}
			//	ungetc(' ',stdin);
				scanf("%lf",&tokenval1);
				printf("%lf\n",tokenval1);
				t=getchar();
				if(isalpha(t))
				{
					error();
					ungetc(t,stdin);
					return 0;
				}
				if(t!=EOF)
					ungetc(t,stdin);
				return FLOAT;
			}
			if(isalpha(t))
			{
				error();
				ungetc(t,stdin);
				return 0;
			}
			ungetc(t,stdin);
			return NUM;
		}
		else if(isalpha(t))
		{
			b=0;
			memset(buf,'\0',sizeof(buf));
			while(isalnum(t))
			{
				buf[b++]=t;
				t=getchar();
				if(b>=BSIZE)
				{
					error();
					return 0;
				}
			}
			iter=symtable.find(buf);
			if(iter==symtable.end())
			{
				if(t!='\n'&&t!=' '&&t!=EOF)
				{
					error();
					return 0;
				}
				tokenval=token_num++;
				strcpy(token[tokenval],buf);
				symtable[buf]=make_pair(ID,tokenval);
			}
			tokenval=symtable[buf].second;
			if(t!=EOF)
				ungetc(t,stdin);
			return symtable[buf].first;
		}
		else if(t==EOF)
			return DONE;
		else if(t=='=')
			return EQU;
		else if(t==':')
		{
			t=getchar();
			if(t=='=')
				return EVU;
			else {error();return 0;}
		}
		else if(t=='<')
		{
			t=getchar();
			if(t=='=')
				return LESS_EQU;
			else if(t=='>'){
                 return NOT_EQU;
                 }
            else
			{
				ungetc(t,stdin);
				return LESS;
			}
		}
		else if(t=='>')
		{
			t=getchar();
			if(t=='=')
				return MORE_EQU;
			else
			{
				ungetc(t,stdin);
				return MORE;
			}
		}
		else
			return t;
	}
}


void init()
{
	int i;
	symtable.clear();
	for(i=0;i<18;i++)
		symtable[s[i].lexptr]=make_pair(s[i].token,NONE);
	token_num=0;
	lineno=1;
}

void print(int t)
{
	switch(t)
	{
	case '+':
	case '-':
	case '*':
	case '/':
		printf("<%c %d>\n",t,t);break;
	case EQU:
		printf("<= %d>\n",t);break;
	case LESS_EQU:
		printf("<<= %d>\n",t);break;
	case LESS: 
		printf("<< %d>\n",t);break;
	case MORE:
		printf("<> %d>\n",t);break;
	case MORE_EQU: 
		printf("<>= %d>\n",t);break;
	case NOT_EQU: 
		printf("<<> %d>\n",t);break;
	case CALL:
		printf("<call %d>\n",t);break;
	case BEGIN:
		printf("<begin %d>\n",t);break;
	case END: 
		printf("<end %d>\n",t);break;
	case ODD:
		printf("<odd %d>\n",t);break;
	case IF:
		printf("<if %d>\n",t);break;
	case THEN: 
		printf("<then %d>\n",t);break;
	case WHILE:
		printf("<while %d>\n",t);break;
	case DO: 
		printf("<do %d>\n",t);break;
	case PROCEDURE: 
		printf("<procedure %d>\n",t);break;
	case NUM:
		printf("<NUM %d>\n",t);break;
	case VAR:
		printf("<var %d>\n",t);break;
	case EVU:
		printf("<:= %d>\n",t);break;
	case CONST:
		printf("<const %d>\n",t);break;
	case FLOAT:
		printf("<float %d>\n",t);break;
	case ID:
		printf("<ID %d>\n",t);break;
	default :
		printf("<%c>\n",t);
		break;
	}
}

void error()
{
	//printf("%d\n",lookahead);
	printf("%d error\n",lineno);
}
int main()
{
	freopen("input.txt","r",stdin);
	//freopen("output.txt","w",stdout);
	init();
	int t;
	while(1)
	{
            t=lexan();
			if(t==DONE)
				break;
			if(t!=0)
			print(t);
			
	}
	//system("pause");
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品不卡在线视频| 欧美日韩国产精品成人| 日韩国产高清影视| 亚洲宅男天堂在线观看无病毒| 国产婷婷色一区二区三区在线| 日韩情涩欧美日韩视频| 欧美一级免费观看| 日韩欧美你懂的| 日韩精品一区二区三区在线播放| 欧美女孩性生活视频| 欧美日韩免费一区二区三区视频 | 久久成人麻豆午夜电影| 亚洲国产精品综合小说图片区| 亚洲人成在线观看一区二区| 亚洲激情五月婷婷| 香蕉乱码成人久久天堂爱免费| 亚洲成人综合在线| 蜜桃视频在线观看一区二区| 麻豆成人综合网| 国产精品一区二区久久不卡 | 亚洲你懂的在线视频| 一区二区三区精品视频在线| 图片区小说区区亚洲影院| 人人狠狠综合久久亚洲| 国产精一品亚洲二区在线视频| 成人免费毛片app| 欧美性色黄大片手机版| 日韩一区二区免费视频| 欧美国产成人在线| 一区二区三区美女视频| 久久成人免费日本黄色| 99精品在线免费| 在线91免费看| 中文字幕免费一区| 亚洲高清在线视频| 精品一二线国产| 在线观看www91| 2020国产精品| 亚洲国产综合人成综合网站| 国产高清在线精品| 欧美性大战久久| 久久久精品国产免大香伊| 一区二区欧美国产| 激情综合网av| 91福利精品第一导航| 久久看人人爽人人| 水野朝阳av一区二区三区| av在线免费不卡| 欧美tk丨vk视频| 亚洲一区二区黄色| 成人一级视频在线观看| 欧美电影精品一区二区| 亚洲一二三专区| aa级大片欧美| 国产午夜精品一区二区| 免费在线观看日韩欧美| 在线视频欧美精品| 国产精品国产自产拍在线| 男人的天堂亚洲一区| 欧美色综合网站| 亚洲素人一区二区| 粉嫩av一区二区三区粉嫩| 日韩一级片在线播放| 亚洲一区二区三区三| 色综合天天视频在线观看 | 一本大道综合伊人精品热热| 久久免费国产精品| 另类人妖一区二区av| 欧美高清激情brazzers| 亚洲自拍都市欧美小说| 91社区在线播放| 亚洲欧洲www| 粉嫩aⅴ一区二区三区四区| 久久中文娱乐网| 老司机免费视频一区二区| 日韩一区二区免费电影| 日韩中文字幕麻豆| 7777精品伊人久久久大香线蕉经典版下载| 日韩毛片在线免费观看| 91蝌蚪porny九色| 亚洲日本一区二区三区| 日本久久一区二区三区| 亚洲成人免费视频| 6080亚洲精品一区二区| 喷白浆一区二区| 久久久久久影视| 懂色av中文字幕一区二区三区| 欧美激情一区二区三区蜜桃视频| 国产激情视频一区二区三区欧美| 国产精品美女久久久久高潮| eeuss鲁一区二区三区| 亚洲欧美激情小说另类| 欧美三级电影网站| 日本aⅴ亚洲精品中文乱码| 精品国产免费人成在线观看| 国产一区二区三区免费播放| 中文字幕精品一区| 色综合久久综合| 丝袜亚洲另类丝袜在线| 精品成人一区二区三区| 99视频精品全部免费在线| 亚洲激情图片一区| 欧美成人一区二区三区| 国产精品一区二区三区四区| 亚洲情趣在线观看| 欧美一区二区免费| 成人av在线资源网站| 亚洲午夜激情av| 久久精品综合网| 欧美在线你懂得| 国产盗摄视频一区二区三区| 亚洲综合在线第一页| 精品福利一区二区三区| 日本电影亚洲天堂一区| 日本成人中文字幕在线视频| 中文字幕精品三区| 91精品国产福利| 91美女蜜桃在线| 国产一区二区三区在线观看免费 | 久久久久国产精品人| 在线免费观看一区| 国产美女娇喘av呻吟久久| 亚洲午夜电影在线观看| 国产欧美1区2区3区| 91精品欧美福利在线观看| 国产成人啪午夜精品网站男同| 亚洲一区二区三区免费视频| 国产日韩av一区| 欧美一级视频精品观看| 欧美在线色视频| 99国产精品久久久久久久久久| 久久国产免费看| 日韩av电影免费观看高清完整版 | 欧美日韩国产中文| www.性欧美| 国产尤物一区二区在线| 视频一区二区国产| 亚洲综合在线五月| 中文字幕在线不卡视频| 国产亚洲综合色| 精品成人一区二区| 精品国精品自拍自在线| 欧美精品丝袜中出| 欧美视频一区二| 91免费视频网| 91美女在线看| 99免费精品视频| 成人app在线| 成人av在线播放网址| 国产91丝袜在线播放九色| 国产毛片一区二区| 国产精品一区在线| 国产乱色国产精品免费视频| 久久国产乱子精品免费女| 老司机午夜精品| 国内精品免费**视频| 韩国av一区二区| 国产精品18久久久久久久久久久久| 国内精品久久久久影院薰衣草| 久久丁香综合五月国产三级网站| 久久精品国产一区二区三| 久久精品国产一区二区三| 国产一区二区三区精品视频| 国产精品一区二区三区四区| 成人国产在线观看| 91丨porny丨首页| 欧美在线一区二区三区| 777奇米四色成人影色区| 日韩三级视频在线看| 久久久久国色av免费看影院| 国产精品不卡一区二区三区| 亚洲精品写真福利| 日韩电影一区二区三区四区| 捆绑紧缚一区二区三区视频| 国产乱国产乱300精品| 99精品一区二区三区| 欧美色爱综合网| 2020国产精品| 亚洲天堂网中文字| 日韩成人免费在线| 国产精品一区在线观看乱码| 色诱视频网站一区| 91精品国产品国语在线不卡| 国产网红主播福利一区二区| 亚洲一区影音先锋| 激情文学综合插| 91黄色激情网站| 日韩欧美国产一区二区在线播放| 国产精品热久久久久夜色精品三区| 亚洲品质自拍视频| 国内一区二区视频| 91成人免费网站| 国产女主播视频一区二区| 一区二区不卡在线播放| 韩国三级电影一区二区| 91精品国产综合久久婷婷香蕉 | 欧美群妇大交群的观看方式| 久久精品视频在线免费观看| 一区二区三区av电影| 国产在线播放一区二区三区|