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

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

?? tokenoper_h.h

?? 單片機宏匯編器的源程序。給一些愛好者作為學習編譯原理和 C 程序設計的例子.
?? H
字號:
//---------------------------------------------------------------------------
//  TokenOper_H.h
//---------------------------------------------------------------------------
#ifndef	TokenOper_H.h  // 防止被重復引用
#define TokenOper_H.h
//---------------------------------------------------------------------------

#include "Jstring_H.h"
#include "Tokenfield_H.h"
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
class TokenOper : public JObject
{ public:
     // 把pt所指向的節點刪除。
     static  void DelTokenNode(Tokenfield* &pt);

     // 把pt->next所指向的節點刪除。
     static  void DelnextTokenNode(Tokenfield* pt);

     // 把以pt所指的結點開頭的Token表刪除。
     static  void DelTokenList(Tokenfield* &pt);

     // 把pt所指的下層Expression結點刪除。
     static  void DelExpTkn(Tokenfield* pt);

     // 把pt所指的OPerand表達式(#+Expr)刪除。
     static  void DelOPNDTkn(Tokenfield* pt);

     // 把以pt所指的結點開頭的Operand表(必須全都是Operand)刪除。
     static  void DelOPNDList(Tokenfield* pt);


     // 判斷pt->next是否操作數,是則把它轉為OPadToken, 即令pt->next=OPadToken.
     static   ERR OPadToPack(Tokenfield* pt);

     // 判斷pt->next是否表達式,是則把它歸約為ExpToken, 即令pt->next=ExpToken.
     static   ERR ExpToPack(Tokenfield* pt);

     // 該函數返回 "p->next" 的操作數個數(可以是零), 各個操作數以','作為分隔.
     static  int8 CalOPadNum(Tokenfield* pt, ERR &err);

     // 返回 "p->next" 的表達式個數, 各個表達式以','作為分隔.
     // 這里的表達式包括數值表達式, 字符, 字符串.
     static  int8 IsCExpList(Tokenfield* pt, ERR &err);

     // 返回 "p->next" 的數值表達式個數, 各個表達式以','作為分隔.
     static  int8 CalExpNum(Tokenfield* pt, ERR &err);

     // 判斷p指向的結點是否為一個表達式,返回表達式長度len. 如果正確, len>0.
     static  int8 FetchOpadLen(Tokenfield* pt, ERR &err);

     // 判斷p指向的結點是否為一個表達式,返回表達式長度len. 如果正確, len>0.
     static int8u FetchExpLen(Tokenfield* &p,ERR &err);

     // 把pt->next所指的Token為起點, 長度為len的一個表達式封裝為表達式包(ExpToken).
     static  void ExpToToken(Tokenfield* pt, int8u len);

     // 把pt->next所指的Token為起點的帶@,#,/,等的表達式封裝為操作數包,成為OPADtoken.
     static  void OPadToToken(Tokenfield* pt, int8u len);

     // 計算pt->next所指的Token為起點的WordsToken串的長度。pt不能為空。注意pt帶值返回。
     static  int8 CalWordNum(Tokenfield* &pt, ERR &err);

     // 把pt->next所指的Token為起點的長度為len的WordList封裝為WordList。
     static  void WordListToToken(Tokenfield* pt, int8u len);

     // 把pt->next所指的Token為起點, 長度為len的一個表達式封裝為WordList.
     // 該WordList用()括住。返回WordList長度。
     static  int8 CalWordNumAndPack(Tokenfield* &pt, ERR &err);

     // pt + ',' + word   word不能是保留字或其他符號。
     static   ERR ArgvWordParser(Tokenfield* pt);

     // pt + ',' + word [ = Value ] word不能是保留字或其他符號。
     static   ERR ArgvWordEvluParser(Tokenfield* pt);


     // 在一個Token鏈表中尋找含有指定名字的Token。
     static Tokenfield* SearchToken(Tokenfield* head, const Jstring& fname);

     // 檢查從lpt指向的Token鏈開始到pt之前的結點的Name是否與pt所指向的Name相同。
     static  bool HaveArguName(Tokenfield* lpt, Tokenfield* pt);

  // --------------------
     static  void showTknList(Tokenfield* pt);

}; // end TokenOper
//---------------------------------------------------------------------------



/****************************************************************************
*                       下面是實現部分                                      *
*****************************************************************************/

//---------------------------------------------------------------------------
// 把pt所指向的節點刪除。pt移到pt->next。pt本身改變。(吐故納新!)
//---------------------------------------------------------------------------
inline void TokenOper::DelTokenNode(Tokenfield* &pt)
{ if(pt != NULL)
   { register Tokenfield* temp = pt; pt = pt->next; delete temp; } // endif
  // 如果pt==NULL,什么都不做。
} // end DelTokenNode
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// 把pt->next所指向的節點刪除。
//---------------------------------------------------------------------------
inline void TokenOper::DelnextTokenNode(Tokenfield* pt)
{ if(pt != NULL)    // 如果所要刪除的節點不為空
   { DelTokenNode(pt->next); } // endif
  // 所要刪除的節點竟然為空!
} // end DelnextTokenNode
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------
// 把pt所指的下層Expression結點刪除(只刪一個), 并置pt->ExpPt = NULL。
// 注意,pt->Token == ExpresnKn. pt 不能為空!
//---------------------------------------------------------------------------
inline void TokenOper::DelExpTkn(Tokenfield* pt)
{ DelTokenList(pt->ExpPt); 
} // end DelExpTkn
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------
//               Written by JamesyFront.    ZLGmcu Dev.Co.Ltd.  2002.
//---------------------------------------------------------------------------



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩丝袜美女视频| 欧美群妇大交群的观看方式| 亚洲成av人综合在线观看| 国产精品污网站| 久久久www成人免费毛片麻豆| 欧美一区二区三区的| 欧美日韩一区国产| 欧美日韩不卡一区二区| 欧美日韩一级视频| 欧美日韩久久久一区| 欧美日韩久久久久久| 欧美日韩综合不卡| 欧美绝品在线观看成人午夜影视| 91黄色在线观看| 欧美午夜电影网| 欧美日韩国产高清一区二区三区| 欧美亚洲国产怡红院影院| 在线视频你懂得一区二区三区| 91美女在线看| 在线看不卡av| 欧美老肥妇做.爰bbww视频| 欧美一区二区在线视频| 欧美挠脚心视频网站| 日韩午夜电影av| 久久久国际精品| 国产精品久久久久aaaa樱花| 亚洲另类中文字| 亚洲国产综合色| 麻豆91小视频| 成人免费看黄yyy456| 91极品美女在线| 欧美一区二区三区精品| 国产女同性恋一区二区| 亚洲一区影音先锋| 紧缚捆绑精品一区二区| 91亚洲男人天堂| 日韩一区二区在线看| 亚洲国产精品成人综合色在线婷婷| 亚洲日本青草视频在线怡红院| 三级在线观看一区二区| 国产成人在线网站| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 91精品啪在线观看国产60岁| 久久精品水蜜桃av综合天堂| 一区二区日韩av| 精品一区二区国语对白| 91麻豆福利精品推荐| 精品福利视频一区二区三区| 亚洲男人的天堂网| 激情图片小说一区| 在线亚洲欧美专区二区| 国产性色一区二区| 日韩精品一卡二卡三卡四卡无卡| 国产成人av影院| 欧美一区二区三区免费在线看 | 一区二区三区四区不卡视频 | 日韩一级片在线观看| 专区另类欧美日韩| 国产成人福利片| 日韩午夜中文字幕| 午夜精品福利久久久| 91亚洲男人天堂| 国产精品你懂的| 国产高清亚洲一区| 日韩区在线观看| 日韩av网站在线观看| 色婷婷综合久色| 最新国产の精品合集bt伙计| 国产精品综合一区二区三区| 日韩欧美国产麻豆| 欧美aaa在线| 91麻豆精品国产91久久久久久久久| 最近日韩中文字幕| 成人性视频免费网站| 国产亚洲精品7777| 99视频有精品| 国产日韩综合av| 国产在线播放一区| 精品人在线二区三区| 久国产精品韩国三级视频| 欧美精品九九99久久| 亚洲成人一区在线| 欧美日韩亚洲综合| 亚洲电影第三页| 欧美性受xxxx| 视频在线在亚洲| 日韩欧美亚洲一区二区| 另类综合日韩欧美亚洲| 日韩三级免费观看| 国产精品1区二区.| 国产精品网站导航| 91女厕偷拍女厕偷拍高清| 亚洲欧美日韩系列| 欧美视频一区二区三区在线观看| 亚洲国产三级在线| 欧美一区二区三区性视频| 久久黄色级2电影| 中文字幕欧美激情| 99精品视频在线免费观看| 一区二区三区四区视频精品免费 | 色综合中文综合网| 欧美日韩mp4| 国产一区视频网站| 亚洲欧美在线高清| 欧美肥妇毛茸茸| 国产成人综合在线观看| 国产精品黄色在线观看| 欧美性三三影院| 激情久久五月天| 亚洲欧洲日本在线| 欧美高清视频一二三区| 国产激情精品久久久第一区二区 | 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲国产精品久久久久秋霞影院| 欧美乱妇一区二区三区不卡视频| 久久99精品久久久久久| 亚洲欧洲精品一区二区三区| 欧美剧情片在线观看| 国产成人自拍网| 五月天欧美精品| 国产精品色在线| 日韩欧美不卡在线观看视频| 99久久婷婷国产精品综合| 美女视频黄 久久| 亚洲黄色小视频| 久久久午夜精品理论片中文字幕| 92精品国产成人观看免费| 久久成人麻豆午夜电影| 亚洲综合激情另类小说区| 国产欧美一二三区| 91精品国产综合久久精品麻豆 | 亚洲精品福利视频网站| 久久久精品国产99久久精品芒果| 欧美日韩在线三区| 91麻豆精品视频| 国产精品18久久久久久久久| 亚洲丰满少妇videoshd| 亚洲免费观看高清| 国产精品视频看| 久久久久久毛片| 欧美电影精品一区二区| 欧美日韩高清一区二区三区| 色综合咪咪久久| 成人动漫在线一区| 国产成人午夜精品影院观看视频| 蜜臀av一级做a爰片久久| 亚洲一区二区三区美女| 亚洲乱码国产乱码精品精98午夜| 欧美国产精品一区二区| 久久综合色一综合色88| 日韩午夜在线影院| 日韩女同互慰一区二区| 欧美一区二区视频网站| 777亚洲妇女| 欧美一区二区三区思思人| 欧美疯狂做受xxxx富婆| 欧美日韩视频在线观看一区二区三区| 色综合久久99| 欧美在线免费观看视频| 欧洲精品视频在线观看| 色婷婷av一区二区三区gif| 色婷婷久久久综合中文字幕| 色综合久久中文综合久久97| 91热门视频在线观看| 在线观看成人小视频| 欧美性色综合网| 日韩亚洲欧美高清| 精品国产乱子伦一区| 国产日韩精品一区二区浪潮av| 国产日韩欧美精品在线| 中文字幕日韩一区| 一区二区三区波多野结衣在线观看 | 欧洲中文字幕精品| 在线91免费看| 久久综合99re88久久爱| 国产精品五月天| 一区二区在线观看不卡| 日日夜夜精品视频免费| 精品亚洲成av人在线观看| 成人免费av资源| 欧美色综合天天久久综合精品| 欧美一区二区三区播放老司机| 精品国产亚洲一区二区三区在线观看| 国产无遮挡一区二区三区毛片日本| 国产精品久久免费看| 亚洲mv大片欧洲mv大片精品| 九色|91porny| 91丨国产丨九色丨pron| 666欧美在线视频| 久久久久久黄色| 亚洲国产美女搞黄色| 国内精品视频666| 色噜噜狠狠色综合欧洲selulu| 日韩一卡二卡三卡| 午夜影院久久久| 成人a免费在线看| 91精品国产乱码| 亚洲天天做日日做天天谢日日欢| 日韩成人av影视| 91同城在线观看|