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

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

?? symbtable.cpp

?? pl0編譯器
?? CPP
字號:
//SymbTable.cpp

#include "stdafx.h"
#include "SymbTable.h"


//插入算法主要是把類型和標識符合并成一個符號表項的信息并插入.
void SymbTable::insert(char * _idName, AttributeIR _attrIR)
{
	switch(_attrIR.kind)
	{
	case varKind:
		{
			if ( level_find(_idName) ) 
			{
				cerr<<_idName<<" has been decirbe!"<<" level: "<<level<<", offset: "<<off<<endl;
				exit(1);
			}
			else
				cout<<_idName<<" is inserted,"<<" level: "<<level<<", offset: "<<off<<endl;
			
			_attrIR.More.VarAttr.level = level;
			_attrIR.More.VarAttr.off = off;
			SymTab temp;
			temp.attrIR = _attrIR;
			temp.idName = _idName;
			temp.Level = level;
			temp.Off = off;
			Table.push_back(temp);
			off++;
			break;
		}
//對類型變量及過程名都沒處理
	case typeKind:
		break;
	case procKind:
		break;
	}
}

//在全局符號表中查找比當前層數小的層里是否已經有變量聲明.
bool SymbTable::find(char * _idName)
{
	if (Table.empty()) return false;
	vector < SymTab >::iterator S_p = Table.begin();
	for(; S_p != Table.end(); S_p++ ) 
	{ 
		if ( !strcmp(S_p->idName,_idName) ) break;
		cout<<strcmp(S_p->idName,_idName)<<' '<<S_p->idName<<' '<<_idName<<endl;
	}
	if ( S_p == Table.end() ) return false;
	else 
		if ( S_p->Level > level ) return false;
		else return true;
}

//在本層符號表中查找是否已有變量聲明
bool SymbTable::level_find(char * _idName)
{
	if (Table.empty()) return false;
	vector < SymTab >::iterator S_p = Table.begin();
	for(; S_p != Table.end(); S_p++ ) 
		if ( !strcmp(S_p->idName,_idName) && S_p->Level == level ) break;
	if ( S_p == Table.end() ) return false;
	else return true;
}

//添加符號表,只是簡單的層數加一,然后把上層偏移保存在SOCPE棧中,偏移置0
void SymbTable::create() 
{ 
	level++; 
	scope.push(off);
	off = 0; 
}

//彈出符號表,只是簡單的層數減一,然后把上層偏移從SOCPE棧中彈出并恢復.
void SymbTable::destroy()
{
	level--;
	off = scope.top();
	scope.pop();
}

//顯示類型中的信息
void Show_TypeIR (typeIR * type)
{
	cout<<"Size: "<<type->size<<" Kind: ";
	switch(type->kind)
	{
	case intTy:
		{
			cout<<"integer"<<endl;
			break;
		}
	case charTy:
		{
			cout<<"char"<<endl;
			break;
		}
	case arrayTy:
		{
			cout<<"array"<<endl;
			cout<<"low: "<<type->More.ArrayAttr.low<<" top: "<<type->More.ArrayAttr.top<<endl;
			cout<<"The infomation of element: "<<endl;
			Show_TypeIR(type->More.ArrayAttr.elemTy);
			break;
		}
	case recordTy:
		{
			cout<<"record"<<endl;
			cout<<"field is consisted of"<<endl;
			struct field *head = type->More.body;
			while ( head != NULL)
			{
				Show_TypeIR(head->UnitType);
				cout<<"Name: "<<head->id<<" Offset: "<<head->off<<endl;
				head = head->next;
			}
			break;
		}
	case boolTy:
		{
			cout<<"bool"<<endl;
			break;
		}
	}
}

//打印整個表.
void SymbTable::print_table()
{
	
	vector< SymTab >::iterator S_it = Table.begin();
	for (; S_it != Table.end(); S_it++)
	{
		cout<<endl<<"+++++++++++++++++++++++++++++++++++++"<<endl;
		cout<<"Level: "<<S_it->Level<<", Offset: "<<S_it->Off<<' ';
		cout<<"Name: "<<S_it->idName<<endl<<"Type: ";
		switch (S_it->attrIR.kind)
		{
		case typeKind:
			{
				break;
			}
		case varKind:
			{
				cout<<"var"<<endl;
				cout<<"The infomation of this var is "<<endl;
				Show_TypeIR(S_it->attrIR.idtype);
				if(S_it->attrIR.More.VarAttr.isParam)
				{			
					if(S_it->attrIR.More.VarAttr.access == dir)
						cout<<"This var is direct parameter."<<endl;
					else cout<<"This var is direct parameter."<<endl;
				}
				else cout<<"This var is not a partameter."<<endl;
			}
		case procKind:
			{
				break;
			}
		}
		
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产综合草草| 欧美浪妇xxxx高跟鞋交| 国产福利精品导航| 国产一区二区福利| 国产成人精品免费一区二区| 高清在线观看日韩| 成人午夜视频网站| 成人在线一区二区三区| 成人的网站免费观看| 不卡一区中文字幕| 91亚洲国产成人精品一区二三 | 精品一区二区三区免费毛片爱| 毛片一区二区三区| 国产曰批免费观看久久久| 国产一区二区三区免费在线观看| 国产福利91精品一区| 波多野结衣中文字幕一区| 色综合久久99| 欧美精品电影在线播放| 欧美精品一区二区不卡| 久久精品这里都是精品| 国产精品高清亚洲| 亚洲成av人影院在线观看网| 蜜桃精品视频在线观看| 国内偷窥港台综合视频在线播放| 成人高清视频免费观看| 中文字幕av资源一区| 国产精品天干天干在线综合| 亚洲图片另类小说| 亚洲第一在线综合网站| 国内精品写真在线观看| 97久久精品人人做人人爽| 欧美天天综合网| 欧美人妖巨大在线| 国产午夜精品理论片a级大结局| 国产精品九色蝌蚪自拍| 亚洲午夜电影网| 久久国产剧场电影| 波多野结衣在线aⅴ中文字幕不卡| 在线亚洲免费视频| 日韩网站在线看片你懂的| 日本一区二区成人| 亚洲动漫第一页| 国产精品综合av一区二区国产馆| 色噜噜狠狠成人中文综合 | 亚洲国产美国国产综合一区二区| 精品一二三四区| 色哟哟国产精品| www亚洲一区| 亚洲综合色网站| 国产精品自拍一区| 欧美另类一区二区三区| 国产精品网曝门| 奇米影视一区二区三区| 91网站黄www| 精品不卡在线视频| 午夜日韩在线电影| av在线播放一区二区三区| 日韩一卡二卡三卡四卡| 亚洲人成在线播放网站岛国| 激情五月激情综合网| 中文字幕免费不卡在线| 五月婷婷激情综合| 99国产精品99久久久久久| 亚洲精品一区二区三区99| 亚洲午夜精品在线| 成人动漫在线一区| 久久久美女毛片| 五月天欧美精品| 在线日韩av片| 中文字幕av在线一区二区三区| 美女网站色91| 欧美日本一道本| 国产精品电影一区二区| 国产最新精品精品你懂的| 51精品视频一区二区三区| 亚洲人成在线观看一区二区| 成人一二三区视频| 久久综合九色欧美综合狠狠| 丝袜a∨在线一区二区三区不卡| 91免费视频网| 国产精品久久久久久久久免费樱桃 | 欧美午夜宅男影院| 成人免费在线观看入口| 福利视频网站一区二区三区| 日韩一区二区精品葵司在线| 亚洲h在线观看| 欧美午夜在线观看| 亚洲一区二区欧美日韩| 91精品福利视频| 亚洲乱码中文字幕综合| 91在线看国产| 综合久久综合久久| 91麻豆免费观看| 亚洲婷婷国产精品电影人久久| 国产91色综合久久免费分享| 九九精品一区二区| 欧美一区二区三区视频在线| 免费在线观看视频一区| 欧美一区二区日韩| 奇米四色…亚洲| 日韩免费看网站| 激情五月婷婷综合| 国产偷国产偷精品高清尤物| 高清视频一区二区| 国产精品高潮呻吟| 91在线视频网址| 伊人色综合久久天天| 欧美性高清videossexo| 亚洲风情在线资源站| 9191国产精品| 精品制服美女丁香| 久久久精品国产99久久精品芒果 | 91精品国产欧美日韩| 日本v片在线高清不卡在线观看| 欧美一级午夜免费电影| 精品写真视频在线观看| 亚洲国产精品精华液ab| 91免费精品国自产拍在线不卡| 亚洲女人的天堂| 欧美日韩精品免费| 精品一区二区综合| 中文字幕精品在线不卡| 日本韩国欧美一区| 日韩影院免费视频| 久久久不卡网国产精品一区| 成熟亚洲日本毛茸茸凸凹| 亚洲综合丁香婷婷六月香| 337p亚洲精品色噜噜| 久久99国产精品免费| 国产欧美日韩不卡免费| 91福利精品视频| 看电视剧不卡顿的网站| 国产精品网站在线播放| 欧美日韩一区三区四区| 国产在线不卡视频| 亚洲视频免费在线观看| 在线电影一区二区三区| 国产白丝网站精品污在线入口| 亚洲精品成a人| 日韩精品一区二区三区三区免费| 成人天堂资源www在线| 亚洲大片一区二区三区| 国产亚洲午夜高清国产拍精品| 欧洲国内综合视频| 国产一区二区0| 亚洲国产日产av| 久久先锋影音av| 欧美伊人久久久久久久久影院| 久久99精品网久久| 依依成人精品视频| 久久久久久亚洲综合| 欧美在线色视频| 欧美精品v国产精品v日韩精品| 国产电影一区在线| 视频一区二区中文字幕| 国产精品嫩草99a| 欧美一级艳片视频免费观看| eeuss鲁片一区二区三区在线看| 日本在线播放一区二区三区| 国产精品天天看| 精品美女在线播放| 欧美少妇xxx| 99精品欧美一区二区三区综合在线| 日韩成人av影视| 伊人一区二区三区| 国产精品三级电影| 日韩美女视频一区二区在线观看| 91麻豆免费观看| 粉嫩欧美一区二区三区高清影视| 日韩精品一区第一页| 亚洲精品中文在线观看| 国产三级一区二区三区| 91精品国产一区二区人妖| 91丝袜呻吟高潮美腿白嫩在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品久久久久9999吃药| 日韩一区二区三区在线| 91天堂素人约啪| 国产99精品在线观看| 国产综合一区二区| 免费日韩伦理电影| 午夜激情久久久| 亚洲精品视频在线观看免费| 欧美激情艳妇裸体舞| 欧美电影精品一区二区| 制服丝袜亚洲网站| 欧美日韩中字一区| 欧美中文一区二区三区| 色菇凉天天综合网| 91丝袜国产在线播放| 波多野结衣在线一区| 成人一区二区三区| 国产高清亚洲一区| 国产一区在线观看麻豆| 宅男噜噜噜66一区二区66| 日本高清免费不卡视频| 91色婷婷久久久久合中文| 国产河南妇女毛片精品久久久| 国产呦精品一区二区三区网站|