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

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

?? error.cpp

?? c語言寫的VB編譯器
?? CPP
字號:
////////////////////////////////////////////
//                                        //
//    Error.cpp                           //
//    錯誤處理模塊                        //
//    接受系統錯誤報告并屏幕反饋給用戶    //
//    最后更新時間:2004年4月23日11:33    //
//                                        //
////////////////////////////////////////////



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

#include "Window.h"
#include "Error.h"

extern Window winEdit;

void ShowError
	(
	const ErrorType ErrorCode,	// 錯誤類型代碼
	const int LineNo,			// 發(fā)生錯誤的行號
	const char Extra[MaxY]		// 附加信息,變量、標識符等
	)
{
	char strTemp[MaxY];
	char Message[MaxY];

	// 置錯誤代碼
	Error = ErrorCode;

	if (NoShown)
	{
		// 不顯示錯誤模式

		return;
	}

	switch (ErrorCode)
	{
	case ErrorOpening:
		// 打開文件錯誤

		strcpy(Message, "Opening file error!");
		break;
	case ErrorSaving:
		// 存儲文件錯誤

		strcpy(Message, "Saving file error!");
		break;
	case ErrorNoFreeMemoryInEdit:
		// 在編輯狀態(tài)下無可用內存報告

		strcpy(Message, "No free memory. Reduce your codes.");
		break;
	case ErrorTooLong:
		// 不能再添加新的行

		strcpy(Message, "Cannot add a new line.");
		break;
	case ErrorPrint:
		// 打印錯誤

		strcpy(Message, "Print error.");
		break;
	case ErrorNoFreeMemoryInRun:
		// 在運行狀態(tài)下無可用內存報告

		strcpy(Message, "No free memory. Reduce your variables.");
		break;



	case ErrorUnwantedPart:
		// 語句后面有多余部分

		strcpy(Message, "Unwanted tail after line");
		break;
	case ErrorVar:
		// 非法的變量名

		strcpy(Message, "Invalid variable name");
		break;

	case ErrorMissingAS:
		// 缺少關鍵字AS

		strcpy(Message, "Missing AS after variable");
		break;
	case ErrorMissingVarType:
		// 缺少變量類型

		strcpy(Message, "Missing variable type");
		break;
	case ErrorMissingArraySize:
		// 缺少數組大小

		strcpy(Message, "Missing array range size");
		break;



	case ErrorExpression:
		// 表達式錯誤

		strcpy(Message, "Error in expression");
		break;
	case ErrorMissingExpression:
		// 缺少表達式

		strcpy(Message, "Missing expression");
		break;

	case ErrorPrintSeparate:
		// 非法的分隔符

		strcpy(Message, "Invalid separate symbol");
		break;
	case ErrorQuotation:
		// 字符串后缺少雙引號

		strcpy(Message, "Missing '\"' after string");
		break;



	case ErrorMustInteger:
		// 循環(huán)變量必須為整數

		sprintf(Message, "Must use integer variable '%s'", Extra);
		break;
	case ErrorUnmatchForVar:
		// NEXT后的循環(huán)變量不匹配

		sprintf(Message, "Unmatch loop variable '%s' after 'NEXT'", Extra);
		break;
	case ErrorMissingForVarGiveValue:
		// FOR語句中缺少賦值語句

		strcpy(Message, "Missing giving value to variable");
		break;
	case ErrorMissingTO:
		// FOR語句中缺少TO

		strcpy(Message, "Missing 'TO'");
		break;
	case ErrorMissingSTEP:
		// FOR語句中缺少STEP

		strcpy(Message, "Missing 'STEP'");
		break;
	case ErrorMissingNEXT:
		// 缺少NEXT

		strcpy(Message, "Missing 'NEXT' in program.");
		break;
	case ErrorUnwantedNEXT:
		// 多余的NEXT語句

		strcpy(Message, "Unwanted 'NEXT'");
		break;
	case ErrorUnwantedCONTINUE:
		// 多余的CONTINUE語句

		strcpy(Message, "Unwanted 'CONTINUE'");
		break;
	case ErrorUnwantedBREAK:
		// 多余BREAK語句

		strcpy(Message, "Unwanted 'BREAK'");
		break;
	case ErrorMoreFor:
		// 太多的FOR語句

		strcpy(Message, "Too many loops in program");
		break;
	case ErrorMoreNestFor:
		// 太多的循環(huán)嵌套哦

		strcpy(Message, "Too many nested loops in program");
		break;



	case ErrorMissingTHEN:
		// 缺少THEN

		strcpy(Message, "Missing 'THEN' or having unwanted tail");
		break;
	case ErrorMissingENDIF:
		// 缺少ENDIF

		strcpy(Message, "Missing 'END IF' in program.");
		break;
	case ErrorBool:
		// 布爾表達式錯誤

		strcpy(Message, "Boolean expression error");
		break;
	case ErrorUnwantedELSE:
		// 多余的ELSE

		strcpy(Message, "Unwanted 'ELSE'");
		break;
	case ErrorUnwantedENDIF:
		// 多余的ENDIF

		strcpy(Message, "Unwanted 'END IF'");
		break;
	case ErrorMoreIf:
		// 太多的IF語句

		strcpy(Message, "Too many 'IF' in program.");
		break;
	case ErrorMoreNestIf:
		// 太多的IF嵌套

		strcpy(Message, "Too many nested 'IF' in program.");
		break;



	case ErrorSubName:
		// 錯誤的過程名

		strcpy(Message, "Sub name error");
		break;
	case ErrorMissingSubName:
		// 缺少過程名

		strcpy(Message, "Missing sub name");
		break;
	case ErrorMissingENDSUB:
		// 缺少ENDSUB

		strcpy(Message, "Missing 'END SUB' in program.");
		break;
	case ErrorUnwantedENDSUB:
		// 多余的END SUB

		strcpy(Message, "Unwanted 'END SUB'");
		break;
	case ErrorUnwantedRETURN:
		// 多余的RETURN語句

		strcpy(Message, "Unwanted 'RETURN'");
		break;
	case ErrorMoreSub:
		// 太多的過程

		strcpy(Message, "Too many sub in program");
		break;
	case ErrorNoSuchSub:
		// 無法找到此過程

		sprintf(Message, "Can not find such sub '%s'", Extra);
		break;
	case ErrorSubPosition:
		// 過程內不得再定義過程

		strcpy(Message, "Sub position error");
		break;



	case ErrorMissingRange:
		// 數組變量中缺少下標

		strcpy(Message, "Missing range in array variable");
		break;
	case ErrorUnwantedComma:
		// 多余的逗號

		strcpy(Message, "Unwanted comma here");
		break;
	case ErrorRangeOverflow:
		// 數組下標溢出

		strcpy(Message, "Array variable range overflow");
		break;



	case ErrorLocatePara:
		// LOCATE參數個數錯誤

		strcpy(Message, "The bumber of locate parameter error");
		break;
	case ErrorCoordinate:
		// LOCATE語句中坐標錯誤

		strcpy(Message, "Coordinate in locate is wrong");
		break;



	case ErrorUndefined:
		// 變量未定義

		sprintf(Message, "Undefined variable '%s'", Extra);
		break;



	case ErrorDim:
		// 數組維數不匹配

		sprintf(Message, "Array dimension not match on '%s'", Extra);
		break;
	case ErrorMissingBracketInArray:
		// 數組使用時缺少右括號

		sprintf(Message, "Missing ')' at array variable %s", Extra);
		break;
	case ErrorMissingSubscript:
		// 數組缺少下標

		sprintf(Message, "Missing range subscript");
		break;



	case ErrorMissingVar:
		// 缺少變量

		strcpy(Message, "Missing variable name");
		break;



	case ErrorCannotDelArray:
		// 不能刪除數組變量的某個元素

		strcpy(Message, "Can not delete array element");
		break;



	case ErrorDelayTime:
		// 延遲時間錯誤

		strcpy(Message, "Time of delay error");
		break;



	case ErrorRND:
		// RND參數錯誤

		strcpy(Message, "RND parameter error");
		break;



	case ErrorZeroDivision:
		// 零做除數

		strcpy(Message, "Divided by zero");
		break;



	case ErrorSyntax:
		// 語法錯誤

		strcpy(Message, "Syntax error");
		break;



	case ErrorMissingParameter:
		// 在函數后面缺少參數

		strcpy(Message, "Missing parameter after function");
		break;



	case ErrorInput:
		// 輸入錯誤

		strcpy(Message, "Input not match");
		break;



	case ErrorSerious:
		strcpy(Message, Extra);
		exit(0);

	default:
		printf("No error message, add it. %d", Error);
		int Key;
		Receive(Key);
		break;
	}

	// 警報
	Sound();

	// 得到最終顯示信息
	char Mess[MaxY] = "";
	if (LineNo > -1)
	{
		sprintf(Mess, "%s at line %d", Message, LineNo + 1);
	}
	else
	{
		sprintf(Mess, " %s ", Message);
	}

	if (LineNo > -1)
	{
		// 有附帶行號信息

		puttext(1, 1, 80, 25, TextMirror);

		// 設置錯誤行為當前行
		TextX = LineNo;
		TextY = LengthOf(TextX);

		if (LineNo < x0 || LineNo >= x0 + winEdit.High())
		{
			// 超處當前屏

			x0 = LineNo;
			PrintText(winEdit.Top() + 1);
		}

		// 計算光標位置
		NowX = LineNo - x0 + winEdit.Top() + 1;
		NowY = winEdit.Left() + TextY + 1;

		ShowPosition();

		// 滾動垂直滾動條
		winEdit.ScrollVertical(TextX);
	}

	// 顯示錯誤窗口
	int Len = strlen(Mess);
	Window Error(6, (76 - Len) / 2 + 2, 10, (76 - Len) / 2 + Len + 5, true, false);
	char ErrorTitle[15] = "";
	sprintf(ErrorTitle, "Error %d#", ErrorCode);
	Error.SetTitle(ErrorTitle);
	Error.SetColor(WHITE, LIGHTGRAY, RED, LIGHTGRAY);
	Error.Add(Mess);
	Error.Show();
	Error.Wait();
	Error.Hide();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品免费| 欧美精品丝袜久久久中文字幕| 亚洲自拍偷拍欧美| 中文字幕高清不卡| 国产亚洲午夜高清国产拍精品| 91精品欧美一区二区三区综合在| 欧美视频一区二区| 欧洲精品中文字幕| 91亚洲资源网| 欧美综合视频在线观看| 97久久精品人人做人人爽50路| 韩国成人精品a∨在线观看| 日韩精品福利网| 日韩有码一区二区三区| 亚洲三级在线免费观看| 一区二区三区小说| 五月天中文字幕一区二区| 亚洲黄色小说网站| 天天影视色香欲综合网老头| 免费欧美日韩国产三级电影| 国产精品一区在线观看乱码| eeuss鲁片一区二区三区在线观看| 99r国产精品| 欧美日韩国产一级| 中文字幕精品一区二区精品绿巨人| 亚洲国产成人在线| 亚洲精品国产第一综合99久久| 亚洲综合色噜噜狠狠| 免费观看91视频大全| 国产一区二区在线观看视频| 99riav久久精品riav| 777午夜精品免费视频| 国产女同性恋一区二区| 亚洲午夜免费电影| 久久精品国产久精国产爱| 99久久精品免费看国产免费软件| 欧美日韩一区二区在线视频| 精品黑人一区二区三区久久| 成人免费小视频| 日韩影视精彩在线| 不卡的电影网站| 91精品午夜视频| 亚洲免费看黄网站| 久久精品国产精品亚洲综合| 91美女蜜桃在线| 精品福利一区二区三区 | 日韩精品91亚洲二区在线观看 | 久久99精品久久久久婷婷| 成a人片亚洲日本久久| 日韩欧美综合一区| 亚洲欧美视频一区| 国产在线观看免费一区| 欧美日韩高清影院| 亚洲人成影院在线观看| 韩日欧美一区二区三区| 欧美日韩国产系列| 国产精品国产三级国产有无不卡| 免费观看日韩av| 欧美色倩网站大全免费| 国产精品不卡在线观看| 国产一区三区三区| 日韩视频在线观看一区二区| 樱花影视一区二区| 成人av片在线观看| 26uuu欧美日本| 日本午夜精品视频在线观看| 欧美色网站导航| 一级精品视频在线观看宜春院 | 成人高清视频在线| 久久青草国产手机看片福利盒子 | 欧美另类变人与禽xxxxx| 欧美国产精品v| 激情偷乱视频一区二区三区| 欧美理论电影在线| 一区二区高清在线| 91九色02白丝porn| 一区二区在线观看视频| 91亚洲精品久久久蜜桃| 亚洲欧美日本在线| 99精品欧美一区二区蜜桃免费| 国产丝袜欧美中文另类| 国产精一区二区三区| 久久久久久久久一| 国产99久久久国产精品潘金网站| 久久精品夜色噜噜亚洲aⅴ| 国产尤物一区二区在线| 久久品道一品道久久精品| 国产精品538一区二区在线| 国产精品私人自拍| 91网站最新地址| 亚洲自拍都市欧美小说| 欧美美女视频在线观看| 蜜臀国产一区二区三区在线播放| 日韩欧美激情一区| 国产在线精品免费| 国产精品国产自产拍高清av王其| 91在线精品一区二区| 亚洲午夜免费电影| 欧美mv和日韩mv国产网站| 九一九一国产精品| 精品国精品国产| 不卡视频一二三| 中文字幕亚洲电影| 欧洲一区在线观看| 蜜桃视频在线观看一区二区| 久久综合色婷婷| 91视频一区二区| 久久精品国产一区二区三| 国产精品美女久久福利网站| 欧美三级在线看| 精久久久久久久久久久| 国产精品入口麻豆九色| 欧美日免费三级在线| 国内一区二区在线| 一区二区三区国产精华| 欧美α欧美αv大片| 91女神在线视频| 美女被吸乳得到大胸91| 亚洲天堂2016| 亚洲精品在线一区二区| 色悠悠久久综合| 激情成人综合网| 一区二区三区四区在线| 久久久久99精品国产片| 欧美亚洲禁片免费| 国产91高潮流白浆在线麻豆 | 91精品国产综合久久精品麻豆 | 日韩免费观看高清完整版| 不卡一卡二卡三乱码免费网站| 亚洲国产日韩在线一区模特 | 欧美日韩夫妻久久| 成人精品国产一区二区4080| 免费欧美在线视频| 亚洲无线码一区二区三区| 国产欧美日韩在线观看| 欧美猛男男办公室激情| 91性感美女视频| 成人av免费在线播放| 国模少妇一区二区三区| 日韩中文字幕1| 亚洲精品日韩一| 国产精品三级视频| 久久久青草青青国产亚洲免观| 欧美久久久久久久久| 欧美伊人精品成人久久综合97| 波多野结衣在线aⅴ中文字幕不卡| 九一九一国产精品| 日本免费在线视频不卡一不卡二| 亚洲一区二区四区蜜桃| 一区二区三区资源| 亚洲欧洲一区二区三区| 国产精品青草久久| 国产精品亲子伦对白| 欧美国产一区二区| 国产精品美女视频| 国产精品国产三级国产aⅴ中文| 国产欧美在线观看一区| 国产亚洲一区二区在线观看| 久久精品在线观看| 中文字幕av一区二区三区| 中文字幕va一区二区三区| 国产喂奶挤奶一区二区三区| 久久久久久久av麻豆果冻| 国产欧美综合在线观看第十页| 欧美激情一区二区三区全黄| 国产精品网站一区| 综合久久国产九一剧情麻豆| 亚洲天堂2016| 亚洲精品乱码久久久久久黑人 | 久久综合五月天婷婷伊人| 久久综合九色综合欧美就去吻| 精品国产凹凸成av人导航| 久久女同精品一区二区| 中文字幕视频一区| 亚洲综合久久久久| 三级一区在线视频先锋 | 国产精品系列在线| 国产亚洲一区二区三区四区| 中文字幕一区二区三区在线观看 | 在线亚洲人成电影网站色www| 在线亚洲欧美专区二区| 欧美高清视频www夜色资源网| 精品三级av在线| 国产精品麻豆视频| 亚洲第一成年网| 韩国女主播成人在线| 成人av免费在线播放| 欧美色电影在线| 久久久91精品国产一区二区三区| 最新不卡av在线| 久久国产欧美日韩精品| 91亚洲国产成人精品一区二区三| 欧美在线观看18| 日韩女同互慰一区二区| 综合色天天鬼久久鬼色| 欧美aⅴ一区二区三区视频| av高清久久久| 精品国产一区二区三区四区四| 亚洲欧美一区二区不卡| 精品在线一区二区|