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

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

?? error.cpp

?? Cool語言編譯器
?? 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,			// 發生錯誤的行號
	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:
		// 在編輯狀態下無可用內存報告

		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:
		// 在運行狀態下無可用內存報告

		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:
		// 循環變量必須為整數

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

		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:
		// 太多的循環嵌套哦

		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一区二区三区免费野_久草精品视频
国产精品中文字幕日韩精品| ...xxx性欧美| 美女视频一区二区| 欧美日韩国产美| 亚洲一区二区三区四区在线观看| 成人午夜又粗又硬又大| 国产亚洲1区2区3区| 国产精品99久久久久久久vr| 久久久91精品国产一区二区精品| 美女网站色91| 久久久午夜精品| 五月婷婷激情综合| 欧美午夜免费电影| 亚洲一区二区三区视频在线播放| 成人91在线观看| 国产精品久久久久久亚洲伦| 粗大黑人巨茎大战欧美成人| 国产精品免费观看视频| www.欧美.com| 亚洲精品高清视频在线观看| 99riav一区二区三区| 亚洲五月六月丁香激情| 91精品久久久久久久91蜜桃 | 在线观看成人免费视频| 一区二区成人在线| 宅男在线国产精品| 久久99久久精品欧美| 久久夜色精品一区| 风间由美性色一区二区三区| 综合电影一区二区三区 | 91久久线看在观草草青青| 亚洲综合久久久久| 欧美一区二区三区啪啪| 国产成人av电影在线播放| 亚洲欧洲精品成人久久奇米网| 一本大道久久a久久综合婷婷| 天天色天天爱天天射综合| 欧美电影精品一区二区| 成人深夜在线观看| 亚洲成人综合在线| 久久久777精品电影网影网| 99久久婷婷国产综合精品| 午夜欧美视频在线观看 | 精品国产91亚洲一区二区三区婷婷| 国产老妇另类xxxxx| 亚洲柠檬福利资源导航| 日韩欧美激情一区| 91视频在线看| 久久se这里有精品| 亚洲欧美日韩国产另类专区| 日韩一级欧美一级| 99精品一区二区| 麻豆国产精品777777在线| 国产精品欧美综合在线| 91精品国产免费| 99国产精品一区| 国产麻豆9l精品三级站| 亚洲影院久久精品| 国产色一区二区| 51午夜精品国产| 色婷婷久久久久swag精品| 国产一区在线观看麻豆| 亚洲成人先锋电影| 国产精品久久777777| 欧美疯狂性受xxxxx喷水图片| 久久精品99国产国产精| 亚洲欧美区自拍先锋| 欧美一区二区福利视频| av网站一区二区三区| 日本在线不卡一区| 最新不卡av在线| 日本一区二区不卡视频| 欧美成人vps| 欧美精品电影在线播放| 一本一道久久a久久精品| 成人一区二区三区| 久久av中文字幕片| 蜜桃视频在线观看一区二区| 一区二区三区在线高清| 国产精品毛片a∨一区二区三区| 精品少妇一区二区三区在线播放 | 韩国女主播一区二区三区| 亚洲免费三区一区二区| 精品国产91久久久久久久妲己| 欧美日韩综合色| 成人免费视频免费观看| 久久精品72免费观看| 婷婷丁香激情综合| 亚洲精品国产精华液| 中文字幕在线不卡视频| 久久久久久久综合日本| 欧美v亚洲v综合ⅴ国产v| 欧美在线你懂的| 在线观看日韩毛片| 91香蕉视频在线| 成人免费观看视频| 国产精品资源在线看| 免费的成人av| 日韩在线一区二区三区| 午夜精品视频在线观看| 亚洲国产精品尤物yw在线观看| 亚洲精选视频免费看| 国产精品天天摸av网| 国产欧美一区视频| 久久午夜色播影院免费高清| 欧美一级黄色大片| 在线播放国产精品二区一二区四区| 欧美午夜影院一区| 欧美专区亚洲专区| 精品视频1区2区| 欧美高清激情brazzers| 久久精品欧美一区二区三区不卡 | 国产精品成人网| 亚洲女人的天堂| 午夜精品久久久久久| 琪琪一区二区三区| 黄网站免费久久| 国产精品羞羞答答xxdd| youjizz久久| 欧美日韩一区二区三区高清| 欧美www视频| 中文字幕一区二区三| 国产精品久久久一区麻豆最新章节| 国产精品九色蝌蚪自拍| 一区二区三区鲁丝不卡| 日本中文字幕不卡| 高清av一区二区| 欧美色中文字幕| 亚洲精品一区二区三区香蕉| 久久久久久久精| 欧美激情一二三区| 一区二区中文视频| 亚洲成在线观看| 国产成人免费视频一区| 欧美丝袜丝交足nylons| 精品国产一区二区三区忘忧草| 中文字幕精品在线不卡| 夜夜精品浪潮av一区二区三区| 免费在线观看成人| av一区二区三区| 精品卡一卡二卡三卡四在线| 亚洲欧美视频在线观看视频| 精品一区二区三区的国产在线播放| 成人av资源在线观看| 91精品国产综合久久精品麻豆| 欧美—级在线免费片| 日韩av中文字幕一区二区三区| 波多野结衣精品在线| 欧美一区二区三区在线| ...xxx性欧美| 国产寡妇亲子伦一区二区| 欧美群妇大交群中文字幕| 欧美国产成人精品| 日韩国产成人精品| 色哟哟精品一区| 久久久精品天堂| 琪琪一区二区三区| 欧美色电影在线| 自拍偷拍国产亚洲| 国产一二精品视频| 91麻豆精品国产| 亚洲成人资源在线| 91色综合久久久久婷婷| 国产三区在线成人av| 久久99精品久久久久久动态图| 日本高清视频一区二区| 欧美国产精品一区二区| 国内精品视频一区二区三区八戒| 欧美日韩高清一区二区| 亚洲男人都懂的| 91在线porny国产在线看| 中文字幕av一区二区三区| 精品一区二区国语对白| 91精品国产一区二区三区| 亚洲二区视频在线| 欧美群妇大交群中文字幕| 亚洲高清免费观看| 在线看日本不卡| 亚洲一区二区视频在线观看| 91黄色激情网站| 一级女性全黄久久生活片免费| 91在线porny国产在线看| 国产精品视频yy9299一区| 国产精品一区二区久激情瑜伽| 久久久久久久久久久电影| 国产九色sp调教91| 国产欧美一区二区三区网站| 国产中文字幕精品| 国产午夜精品久久久久久免费视| 国产成人在线视频播放| 日本一区二区动态图| 成人精品鲁一区一区二区| 久久久国际精品| 成人黄色电影在线| 国产精品美日韩| 国产69精品久久久久毛片| 久久嫩草精品久久久精品一| 国产麻豆精品95视频| 国产亚洲综合性久久久影院| 懂色av中文一区二区三区|