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

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

?? sal.cpp

?? 用C++開發的編譯程序
?? CPP
字號:
// SAL.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "SAL.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#include "sallib.h"

CWinApp theApp;

FILE* QuaFile;
FILE* SymFile;
int VocPos;
int t;
LinkMan Vocabulary;
LinkMan SymbolSet;

void LEX();
void YACC();
void P();
void P1();
void A();
void B();
void P2();
void F();
void P3();
CString G();
CString H();
CString I();
void Clear();

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	LEX();
	YACC();
	Clear();
	return 0;
}

void LEX()
{
	FILE* fo=fopen("_LEX.txt","w");
	ArrowyVocable* av=NULL;
	bool get_colon=false;
	bool get_end=false;
	CString word_tmp="";
	CString CodeString="";
	int word_pos=-1;
	int colon_pos=-1;
	cout<<"請輸入源程序代碼:\n";
	while(1)
	{
		char s[1024];
		cin>>s;
		CodeString+=s;
		CodeString+=" ";
		if(CodeString.Find("#")>-1)
		{
			CodeString=CodeString.Mid(0,CodeString.Find("#"));
			break;
		}
	}
	for(int i=0;i<CodeString.GetLength();i++)
	{
		char ch=CodeString.GetAt(i);
		if(GetVocableID(ch)<14||ch==' '||ch=='\t'||ch=='\n'||ch==':'||ch==13)
		{
			if(ch==':')
			{
				get_colon=true;
				if(colon_pos<0)
					colon_pos=i;
			}
			else 
			{
				if(word_tmp!="")
				{
					av=new ArrowyVocable;
					av->Voc=new Vocable;
					av->Voc->Value=new char[word_tmp.GetLength()+1];
					av->sPos=word_pos;
					if(get_colon)
						av->ePos=i-1;
					else
						av->ePos=i;
					av->Voc->ID=GetVocableID(word_tmp);
					strcpy(av->Voc->Value,word_tmp);
					Vocabulary.Add((void*)av,sizeof av);
					fprintf(fo,"(%i,%s)\n",av->Voc->ID,av->Voc->Value);
					word_tmp="";
					word_pos=-1;
				}
				if(GetVocableID(ch)<14)
				{
					av=new ArrowyVocable;
					av->Voc=new Vocable;
					if(get_colon&&ch=='=')
					{
						av->sPos=colon_pos;
						av->Voc->Value=new char[3];
						strcpy(av->Voc->Value,":=");
						get_colon=false;
						colon_pos=-1;
					}
					else
					{
						av->sPos=i;
						av->Voc->Value=new char[2];
						av->Voc->Value[0]=ch;
						av->Voc->Value[1]=NULL;
					}
					av->ePos=i+1;
					av->Voc->ID=GetVocableID(av->Voc->Value);
					Vocabulary.Add((void*)av,sizeof av);
					fprintf(fo,"(%i,%s)\n",av->Voc->ID,av->Voc->Value);
				}
			}

		}
		else
		{
			if(word_pos<0)
				word_pos=i;
			word_tmp+=ch;
		}
	}
	fclose(fo);
}

void YACC()
{
	SymFile=fopen("_Symbol.txt","w");
	QuaFile=fopen("_Quaternion.txt","w");
	VocPos=-1;
	t=-1;
	P();
	fclose(SymFile);
	fclose(QuaFile);
}

void P()
{
	P1();
	P2();
	P3();
	if(Vocabulary.GetAt(VocPos+1))
		P();
}

void P1()
{
	Link* tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
		return;
	ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID!=0)
		return;
	VocPos++;
	A();
	tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
	{
err_1:
		Error(0,av);
		return;
	}
	av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID!=5)
		goto err_1;
	VocPos++;
}

void A()
{
	B();
	Link* tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
		return;
	ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID!=4)
		return;
	VocPos++;
	A();
}

void B()
{
	Link* tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
		return;
	ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID!=15)
	{
		if(av->Voc->ID<4)
			Error(1,av);
		else if(av->Voc->ID!=14)
		{
			Error(2,av);
			return;
		}
	}
	if(!CanbeSymbol(av->Voc->Value))
	{
		if(ContainIllegalChar(av->Voc->Value))
			Error(3,av);
		else
			Error(4,av);
	}
	Vocable* vt;
	if(FindDefined(SymbolSet,av->Voc->Value))
	{
		vt=av->Voc;
		Error(5,av);
	}
	else
	{
		vt=new Vocable;
		vt->Value=new char[strlen(av->Voc->Value)+1];
		strcpy(vt->Value,av->Voc->Value);
		SymbolSet.Add((void*)vt,sizeof vt);
	}
	VocPos++;
	tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
	{
err_1:
		Error(6,av);
		return;
	}
	av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID!=6)
		goto err_1;
	VocPos++;
	tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
	{
err_2:
		Error(7,av);
		return;
	}
	av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID==4||av->Voc->ID==5)
		goto err_2;
	if(av->Voc->ID!=14)
		Error(8,av);
	vt->ID=ToInteger(av->Voc->Value);
	fprintf(SymFile,"CONST    %s    %s\n",vt->Value,av->Voc->Value);
	VocPos++;	
}

void P2()
{
	Link* tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
		return;
	ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID!=1)
		return;
	VocPos++;
	F();
	tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
	{
err_1:
		Error(0,av);
		return;
	}
	av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID!=5)
		goto err_1;
	VocPos++;
}

void F()
{
	Link* tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
		return;
	ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID!=15)
	{
		if(av->Voc->ID<4)
			Error(1,av);
		else if(av->Voc->ID!=14)
		{
			Error(2,av);
			return;
		}
	}
	if(!CanbeSymbol(av->Voc->Value))
	{
		if(ContainIllegalChar(av->Voc->Value))
			Error(3,av);
		else
			Error(4,av);
	}
	Vocable* vt;
	if(FindDefined(SymbolSet,av->Voc->Value))
	{
		vt=av->Voc;
		Error(5,av);
	}
	else
	{
		vt=new Vocable;
		vt->Value=new char[strlen(av->Voc->Value)+1];
		strcpy(vt->Value,av->Voc->Value);
		vt->ID=-1;
		SymbolSet.Add((void*)vt,sizeof vt);
	}
	fprintf(SymFile,"VAR         %s\n",vt->Value);
	VocPos++;
	tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
		return;
	av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID!=4)
		return;
	VocPos++;
	F();
}

void P3()
{
	Link* tmp=Vocabulary.GetAt(VocPos+1);
	if(!tmp)
		return;
	bool IsWrite=false;
	ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
	if(av->Voc->ID==2)
	{
do_read:
		VocPos++;
		tmp=Vocabulary.GetAt(VocPos+1);
		if(!tmp)
		{
			Error(9,av);
			return;
		}
		av=(ArrowyVocable*)(tmp->Data);
		if(av->Voc->ID!=12)
			Error(9,av);
		else
			VocPos++;
		tmp=Vocabulary.GetAt(VocPos+1);
		if(!tmp)
		{
			Error(10,av);
			return;
		}
		av=(ArrowyVocable*)(tmp->Data);
		if(av->Voc->ID!=15)
		{
			if(av->Voc->ID==13)
			{
				Error(10,av);
				VocPos--;
			}
			else
				Error(11,av);
		}
		else if(!FindDefined(SymbolSet,av->Voc->Value))
			Error(12,av);
		else 
		{	
			if(FindDefined(SymbolSet,av->Voc->Value)->ID>-1)
				if(!IsWrite)
					Error(13,av);
		}
		VocPos++;
		tmp=Vocabulary.GetAt(VocPos+1);
		if(!tmp)
		{
			Error(14,av);
			return;
		}
		av=(ArrowyVocable*)(tmp->Data);
		if(av->Voc->ID!=13)
			Error(14,av);
		else
			VocPos++;
		tmp=Vocabulary.GetAt(VocPos+1);
		if(!tmp)
		{
			Error(0,av);
			return;
		}
		av=(ArrowyVocable*)(tmp->Data);
		if(av->Voc->ID!=5)
			Error(0,av);
		else
			VocPos++;
	}
	else if(av->Voc->ID==3)
	{
		IsWrite=true;
		goto do_read;
	}
	else if(CanbeSymbol(av->Voc->Value))
	{
		if(!FindDefined(SymbolSet,av->Voc->Value))
			Error(12,av);
		else
		{
			if(FindDefined(SymbolSet,av->Voc->Value)->ID>-1)
				Error(15,av);
		}
		VocPos++;
		CString _Result=av->Voc->Value;
		tmp=Vocabulary.GetAt(VocPos+1);
		if(!tmp)
		{
			Error(16,av);
			return;
		}
		av=(ArrowyVocable*)(tmp->Data);
		if(av->Voc->ID!=7)
			Error(16,av);
		else
			VocPos++;
		CString Result_=G();
		fprintf(QuaFile,"(:=,%s,-,%s)\n\n",Result_,_Result);
		tmp=Vocabulary.GetAt(VocPos+1);
		if(!tmp)
		{
			Error(0,av);
			return;
		}
		av=(ArrowyVocable*)(tmp->Data);
		if(av->Voc->ID!=5)
			Error(0,av);
		else
			VocPos++;
		P3();
	}
	else
	{
		if(av->Voc->ID>1)
		{
			VocPos++;
			if(ContainIllegalChar(av->Voc->Value))
				Error(3,av);
			else
				Error(17,av);
		}
	}
}

CString G()
{
	CString _Result=H();
	while(1)
	{
		Link* tmp=(Link*)Vocabulary.GetAt(VocPos+1);
		if(!tmp)
			return _Result;
		ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
		if(av->Voc->ID!=8&&av->Voc->ID!=9)
			return _Result;
		VocPos++;
		CString Result_=H();
		CString Result;
		Result.Format("\%%i",++t);
		fprintf(QuaFile,"(%s,%s,%s,%s)\n",av->Voc->Value,_Result,Result_,Result);
		_Result=Result;
	}
	return _Result;
}

CString H()
{
	CString _Result=I();
	while(1)
	{
		Link* tmp=(Link*)Vocabulary.GetAt(VocPos+1);
		if(!tmp)
			return _Result;
		ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
		if(av->Voc->ID!=10&&av->Voc->ID!=11)
			return _Result;
		VocPos++;
		CString Result_=I();
		CString Result;
		Result.Format("\%%i",++t);
		fprintf(QuaFile,"(%s,%s,%s,%s)\n",av->Voc->Value,_Result,Result_,Result);
		_Result=Result;
	}
	return _Result;
}

CString I()
{
	CString Result="";
	Link* tmp=(Link*)Vocabulary.GetAt(VocPos+1);
	if(!tmp)
		return Result;
	ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
	VocPos++;
	if(av->Voc->ID==14)
		Result=av->Voc->Value;
	else if(av->Voc->ID==15)
	{
		if(ContainIllegalChar(av->Voc->Value))
			Error(3,av);
		else if(!CanbeSymbol(av->Voc->Value))
			Error(4,av);
		else if(!FindDefined(SymbolSet,av->Voc->Value))
			Error(12,av);
		Result=av->Voc->Value ;
	}
	else if(av->Voc->ID<4)
	{
		Error(1,av);
		Result=av->Voc->Value;
	}
	else if(av->Voc->ID==5)
		Error(18,av);
	else if(av->Voc->ID==4||av->Voc->ID==6||av->Voc->ID==7||av->Voc->ID==13)
		Error(17,av);
	else if(av->Voc->ID==12)
	{
		Result=G();
		tmp=(Link*)Vocabulary.GetAt(VocPos+1);
		if(!tmp)
		{
			Error(14,av);
			return Result;
		}
		av=(ArrowyVocable*)(tmp->Data);
		if(av->Voc->ID!=13)
			Error(14,av);
		VocPos++;
	}
	else
		Error(2,av);
	return Result;
}

void Clear()
{
	Link* tmp;
	Link* head=Vocabulary.Clear();
	while(head->Next)
	{
		tmp=head->Next;
		head->Next=tmp->Next;
		if(tmp)
		{
			ArrowyVocable* av=(ArrowyVocable*)(tmp->Data);
			if(av)
			{
				if(av->Voc)
				{
					if(av->Voc->Value)
						delete[] av->Voc->Value;
					delete av->Voc;
				}
				delete av;
			}
			delete tmp;
		}
	}
	if(head) 
		delete head;
	head=SymbolSet.Clear();
	while(head->Next)
	{
		tmp=head->Next;
		head->Next=tmp->Next;
		if(tmp)
		{
			Vocable* vt=(Vocable*)(tmp->Data);
			if(vt)
			{
				if(vt->Value)
					delete[] vt->Value;
				delete vt;
			}
			delete tmp;
		}
	}
	if(head)
		delete head;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲aⅴ怡春院| 精品一区二区三区免费观看 | 看片的网站亚洲| 国产精品高潮呻吟| 久久综合色婷婷| 一本大道久久a久久精品综合| 国产综合久久久久久鬼色| 亚洲国产人成综合网站| 国产精品久久影院| 国产亚洲va综合人人澡精品| 欧美日韩在线一区二区| 97精品超碰一区二区三区| 国产一区二区美女| 青草国产精品久久久久久| 亚洲综合精品自拍| 亚洲色图欧美偷拍| 中文字幕av一区二区三区| 精品免费日韩av| 欧美一区二区精品| 欧美另类久久久品| 在线视频欧美精品| 91麻豆免费观看| 91色综合久久久久婷婷| av电影天堂一区二区在线| 成人永久免费视频| 国产老肥熟一区二区三区| 国产最新精品精品你懂的| 精品一区二区三区的国产在线播放| 亚洲高清在线视频| 午夜国产精品一区| 亚洲成人资源网| 香蕉久久夜色精品国产使用方法| 一二三区精品福利视频| 亚洲精品免费播放| 亚洲激情在线播放| 一区二区三区中文字幕| 亚洲精选免费视频| 一级精品视频在线观看宜春院| 亚洲精品国产a久久久久久| 亚洲欧美日韩国产手机在线| 日韩一区日韩二区| 亚洲激情在线播放| 午夜久久久影院| 人人狠狠综合久久亚洲| 免费成人在线观看视频| 蜜桃免费网站一区二区三区| 麻豆精品蜜桃视频网站| 国模套图日韩精品一区二区| 国产99一区视频免费| 成人深夜在线观看| 色美美综合视频| 欧美日韩国产一二三| 日韩美一区二区三区| 久久久国产精华| 国产精品国产三级国产普通话99 | 欧美一级黄色片| 精品日韩在线一区| 国产三区在线成人av| 成人欧美一区二区三区小说| 一区二区三区国产豹纹内裤在线| 亚洲国产cao| 国产在线观看免费一区| 成人爽a毛片一区二区免费| 在线视频一区二区免费| 日韩三区在线观看| 国产欧美在线观看一区| 亚洲人精品午夜| 亚欧色一区w666天堂| 久久精品国产精品亚洲精品| 成人h动漫精品一区二区| 欧美系列亚洲系列| 久久久久久亚洲综合影院红桃| 亚洲日本一区二区三区| 奇米色777欧美一区二区| 丁香啪啪综合成人亚洲小说| 在线观看欧美黄色| 精品福利av导航| 亚洲欧美色一区| 伦理电影国产精品| 色综合久久天天综合网| 欧美一区二区三区播放老司机| 国产女人aaa级久久久级| 亚洲自拍偷拍av| 国产激情精品久久久第一区二区| 91久久一区二区| 久久久精品黄色| 香蕉成人啪国产精品视频综合网| 国产91精品在线观看| 欧美精品777| 成人欧美一区二区三区1314| 蜜臀av性久久久久蜜臀av麻豆| 99久久精品免费看| 精品卡一卡二卡三卡四在线| 一区二区三区久久| 国产高清在线观看免费不卡| 欧美日韩极品在线观看一区| 国产精品九色蝌蚪自拍| 看电影不卡的网站| 欧美日韩精品免费观看视频| 国产精品入口麻豆原神| 久久精品国产亚洲高清剧情介绍| 色悠久久久久综合欧美99| 国产色婷婷亚洲99精品小说| 秋霞av亚洲一区二区三| 在线一区二区观看| 国产精品欧美经典| 久色婷婷小香蕉久久| 欧美性生活一区| 中文字幕一区二区在线播放 | 韩国女主播一区二区三区| 欧美日韩一区国产| 亚洲精品老司机| 岛国av在线一区| 久久蜜桃av一区二区天堂| 青青草视频一区| 欧美精品粉嫩高潮一区二区| 亚洲一级在线观看| 色综合久久中文综合久久97 | 一区在线播放视频| 国产精品一区二区三区乱码| 欧美一区二区三区在线看| 一级特黄大欧美久久久| 色999日韩国产欧美一区二区| 国产精品女主播av| 国产不卡视频在线观看| 国产女同互慰高潮91漫画| 国产一区二区三区观看| 久久夜色精品国产噜噜av | 国产精品99久久久久| 日韩欧美国产一二三区| 久久国产精品72免费观看| 日韩免费观看2025年上映的电影| 奇米影视7777精品一区二区| 3atv一区二区三区| 日精品一区二区三区| 欧美喷潮久久久xxxxx| 亚洲成av人片在线观看无码| 欧美三级日本三级少妇99| 亚洲已满18点击进入久久| 欧美四级电影网| 亚洲国产日产av| 欧美一区二区在线免费观看| 日本色综合中文字幕| 日韩欧美的一区| 激情六月婷婷综合| 久久精品一区二区三区四区| 高清成人免费视频| 中文字幕在线一区| 在线精品视频免费播放| 亚洲在线视频一区| 91精品免费在线| 精品中文av资源站在线观看| 国产午夜精品久久久久久免费视 | 日本成人中文字幕| 精品成人佐山爱一区二区| 福利一区二区在线观看| 亚洲精品高清在线观看| 欧美视频日韩视频| 狠狠色狠狠色综合日日91app| 久久精品夜夜夜夜久久| 91丝袜美女网| 日韩激情中文字幕| 国产日韩欧美高清在线| 99久久久国产精品免费蜜臀| 亚洲午夜久久久久| 精品欧美久久久| 色噜噜夜夜夜综合网| 免费久久精品视频| 国产精品久久午夜| 555夜色666亚洲国产免| 国产精品一级片在线观看| 亚洲色大成网站www久久九九| 欧美日韩一区二区三区不卡| 久久草av在线| 一区二区三区在线播放| 日韩欧美久久久| 91蜜桃网址入口| 麻豆极品一区二区三区| 中文字幕一区二区三区精华液 | 欧美日韩极品在线观看一区| 国产精品一级片在线观看| 亚洲国产视频直播| 国产欧美一区二区精品仙草咪| 欧美性受xxxx| 成人免费毛片app| 日本亚洲三级在线| 一区二区三区在线免费播放 | 亚洲国产美女搞黄色| 精品国内二区三区| 欧美色偷偷大香| 99在线视频精品| 国产一区二区伦理| 天天综合网天天综合色| 亚洲天堂免费在线观看视频| 精品久久久久久久久久久久包黑料| 91亚洲大成网污www| 国产精品系列在线播放| 日韩 欧美一区二区三区| 中文字幕一区二区在线观看| 2020国产精品自拍|