91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

簡(jiǎn)單函數(shù)繪圖語言的解釋器 實(shí)現(xiàn)簡(jiǎn)單函數(shù)繪圖的語句 循環(huán)繪圖(FOR-DRAW) 比例設(shè)置(SCALE) 角度旋轉(zhuǎn)(ROT) 坐標(biāo)平移(ORIGIN) 注釋 (-- 或 //) 屏幕(窗口)的坐標(biāo)系 左上角為原點(diǎn) x方向從左向右增長(zhǎng) y方向從上到下增長(zhǎng)(與一般的坐標(biāo)系方向相反)

資源截圖

代碼片段和文件信息

#include“parser.h“
#include“semantic.h“
#define?Tree_trace(x)?PrintSyntaxTree(x1);
#pragma?warning(disable:?4996)
#pragma?warning(disable:?4703)
double?Parameter?=?0
Origin_x?=?0?Origin_y?=?0
Scale_x?=?1?Scale_y?=?1
Rot_angle?=?0;

static?Token?token;//定義一個(gè)記號(hào)

???//輔助函數(shù)聲明
static?void?FetchToken();//調(diào)用詞法分析器的GetToken,把得到的當(dāng)前記錄保存起來。如果得到的記號(hào)是非法輸入errtoken,則指出一個(gè)語法錯(cuò)誤
static?void?MatchToken(enum?Token_Type?The_Token);//匹配當(dāng)前記號(hào)
static?void?SyntaxError(int?case_of);//處理語法錯(cuò)誤的子程序。根據(jù)錯(cuò)誤的性質(zhì)打印相關(guān)信息并且終止程序運(yùn)行。錯(cuò)誤性質(zhì)可以根據(jù)傳參不同來區(qū)分:SyntaxError(1)詞法錯(cuò)???SyntaxError(2)語法錯(cuò)
static?void?ErrMsg(unsigned?LineNo?char?*descrip?char?*string);//打印錯(cuò)誤信息
static?void?PrintSyntaxTree(struct?ExprNode?*root?int?indent);//先序遍歷打印語法樹
???//非終結(jié)符遞歸子程序聲明?有2類
???//第1類,語法分析,不構(gòu)造語法樹,因此語句的子程序均設(shè)計(jì)為過程->void類型的函數(shù),非終結(jié)符的遞歸子程序聲明
static?void?Program();//程序
static?void?Statement();//語句
static?void?OriginStatement();//Origin語句
static?void?RotStatement();//Rot語句
static?void?ScaleStatement();//Scale語句
static?void?ForStatement();//For語句
???//第2類,語法分析+構(gòu)造語法樹,因此表達(dá)式均設(shè)計(jì)為返回值為指向語法樹節(jié)點(diǎn)的指針的函數(shù)。
static?struct?ExprNode?*expression();//表達(dá)式、二元加減運(yùn)算表達(dá)式
static?struct?ExprNode?*Term();//乘除運(yùn)算表達(dá)式
static?struct?ExprNode?*Factor();//一元加減運(yùn)算表達(dá)式
?//把項(xiàng)和因子獨(dú)立開處理解決了加減號(hào)與乘除號(hào)的優(yōu)先級(jí)問題。在這幾個(gè)過程的反復(fù)調(diào)用中,始終傳遞fsys變量的值,保證可以在出錯(cuò)的情況下跳過出錯(cuò)的符號(hào),使分析過程得以進(jìn)行下去。
static?struct?ExprNode?*Component();//冪運(yùn)算表達(dá)式
static?struct?ExprNode?*Atom();//原子表達(dá)式

???//對(duì)外接口聲明
extern?void?Parser(char?*SrcFilePtr);

//語法樹構(gòu)造函數(shù)聲明
static?struct?ExprNode?*MakeExprNode(enum?Token_Type?opcode?...);

//通過詞法分析器接口GetToken獲得一個(gè)記號(hào)
static?void?FetchToken()
{
token?=?GetToken();
if?(token.type?==?ERRTOKEN)?SyntaxError(1);?//如果得到的記號(hào)是非法輸入errtoken,則指出一個(gè)語法錯(cuò)誤
}

//匹配當(dāng)前記號(hào)
static?void?MatchToken(enum?Token_Type?The_Token)
{
if?(token.type?!=?The_Token)
{
SyntaxError(2);//若失敗,指出語法錯(cuò)誤
}
FetchToken();//若成功,獲取下一個(gè)
}

//語法錯(cuò)誤處理
static?void?SyntaxError(int?case_of)
{
switch?(case_of)
{
case?1:?ErrMsg(LineNo?(char*)“錯(cuò)誤記號(hào)?“?token.lexeme);
break;
case?2:?ErrMsg(LineNo?(char*)“不是預(yù)期記號(hào)“?token.lexeme);
break;
}
}

//打印錯(cuò)誤信息
void?ErrMsg(unsigned?LineNo?char?*descrip?char?*string)
{
char?msg[256];
memset(msg?0?256);
sprintf(msg?“Line?No?%5d:%s?%s?!“?LineNo?descrip?string);

MessageBoxA(NULL?msg?“error!“?MB_OK);

CloseScanner();
exit(1);
}

//先序遍歷打印語法樹,根-左-右
void?PrintSyntaxTree(struct?ExprNode?*root?int?indent)
{
int?temp;
for?(temp?=?1;?temp?<=?indent;?temp++)?printf(“\t“);//縮進(jìn)
switch?(root->OpCode)
{
case?PLUS: printf(“%s\n“?“+“); break;
case?MINUS: printf(“%s\n“?“-“); break;
case?MUL: printf(“%s\n“?“*“); break;
case?DIV: printf(“%s\n“?“/“); break;
case?POWER: printf(“%s\n“?“**“); break;
case?FUNC: printf(“%x\n“?root->Content.CaseFunc.MathFuncPtr); break;
case?CONST_ID: printf(“%f\n“?root->Content.CaseConst); break;
case?T: printf(“%s\n“?“T“); break;
default: pri

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-12-05?17:54??Compile\
?????目錄???????????0??2018-12-05?09:40??Compile\.vs\
?????目錄???????????0??2018-12-05?09:40??Compile\.vs\Compile\
?????目錄???????????0??2018-12-07?18:16??Compile\.vs\Compile\v15\
?????文件???????49152??2018-12-07?18:16??Compile\.vs\Compile\v15\.suo
?????文件????34123776??2018-12-07?18:16??Compile\.vs\Compile\v15\Browse.VC.db
?????目錄???????????0??2018-12-05?17:54??Compile\.vs\Compile\v15\ipch\
?????文件??????327680??2018-12-05?09:42??Compile\.vs\Compile\v15\ipch\176691f01abecd6.ipch
?????文件????47579136??2018-12-05?17:54??Compile\.vs\Compile\v15\ipch\64c7c1b4014d5df3.ipch
?????目錄???????????0??2018-12-07?12:46??Compile\.vs\Compile\v15\ipch\AutoPCH\
?????目錄???????????0??2018-12-05?20:03??Compile\.vs\Compile\v15\ipch\AutoPCH\513d0bb9ebe6f03c\
?????文件?????4784128??2018-12-07?09:15??Compile\.vs\Compile\v15\ipch\AutoPCH\513d0bb9ebe6f03c\SCANNER.ipch
?????目錄???????????0??2018-12-07?18:14??Compile\.vs\Compile\v15\ipch\AutoPCH\5338a8ff6f90f8ac\
?????文件?????4718592??2018-12-07?18:14??Compile\.vs\Compile\v15\ipch\AutoPCH\5338a8ff6f90f8ac\SCANNERMAIN.ipch
?????目錄???????????0??2018-12-07?12:43??Compile\.vs\Compile\v15\ipch\AutoPCH\5b8d75911e5f3340\
?????文件????46858240??2018-12-07?12:44??Compile\.vs\Compile\v15\ipch\AutoPCH\5b8d75911e5f3340\SEMANTIC.ipch
?????目錄???????????0??2018-12-07?12:46??Compile\.vs\Compile\v15\ipch\AutoPCH\94d0645a6e76bdbf\
?????文件?????4784128??2018-12-07?12:46??Compile\.vs\Compile\v15\ipch\AutoPCH\94d0645a6e76bdbf\SCANNERMAIN.ipch
?????目錄???????????0??2018-12-07?18:11??Compile\.vs\Compile\v15\ipch\AutoPCH\aeecd457cf75ae9b\
?????文件????43384832??2018-12-07?18:11??Compile\.vs\Compile\v15\ipch\AutoPCH\aeecd457cf75ae9b\SEMANTIC.ipch
?????目錄???????????0??2018-12-07?13:05??Compile\.vs\Compile\v15\ipch\AutoPCH\b84627d9cd402ffd\
?????文件?????3080192??2018-12-07?18:15??Compile\.vs\Compile\v15\ipch\AutoPCH\b84627d9cd402ffd\PARSERMAIN.ipch
?????目錄???????????0??2018-12-07?12:45??Compile\.vs\Compile\v15\ipch\AutoPCH\ba6f68bbfdccccf5\
?????文件????46792704??2018-12-07?12:45??Compile\.vs\Compile\v15\ipch\AutoPCH\ba6f68bbfdccccf5\PARSER.ipch
?????目錄???????????0??2018-12-05?17:54??Compile\.vs\Compile\v15\ipch\AutoPCH\c10aa0c28a1fd09b\
?????文件????47579136??2018-12-05?18:00??Compile\.vs\Compile\v15\ipch\AutoPCH\c10aa0c28a1fd09b\COMPILE.ipch
?????目錄???????????0??2018-12-07?12:50??Compile\.vs\Compile\v15\ipch\AutoPCH\c671325d591e2f9e\
?????文件????43384832??2018-12-07?12:50??Compile\.vs\Compile\v15\ipch\AutoPCH\c671325d591e2f9e\PARSER.ipch
?????目錄???????????0??2018-12-07?18:12??Compile\.vs\Compile\v15\ipch\AutoPCH\d043dcb2cb75386f\
?????文件?????4718592??2018-12-07?18:12??Compile\.vs\Compile\v15\ipch\AutoPCH\d043dcb2cb75386f\SCANNER.ipch
?????目錄???????????0??2018-12-05?17:54??Compile\.vs\Compile\v15\ipch\AutoPCH\ead4cfed584249b8\
............此處省略75個(gè)文件信息

評(píng)論

共有 條評(píng)論

相關(guān)資源