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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 3.txt

?? 語義分析器
?? TXT
字號:
  #include   <iostream>   
  #include   <fstream>   
  #include   <string>   
  #include   <string.h>   
  #include   <ctype.h>   
  using   namespace   std;   
  //   保留字數(shù)組定義   
  char*   ReserveWords[35]   =   {   
      "and",   "array",   "begin",   "case",   "const",   "div",   "do",   "downto",   "else",   "end",   "file",   
      "for",   "function",   "goto",   "if",   "in",   "label",   "mod",   "nil",   "not",   "of",   "or",   "packed",   
      "procedure",   "program",   "record",   "repeat",   "set",   "then",   "to",   "type",   "until",   "var",   
      "while",   "with"   
  };   
  char   arrow[]   =   "   ----->   ";   
  char   enter[]   =   "\r\n";   
  //   讀入ch   
  char   GetChar(ifstream&   src)   
  {   
      char   cRet;   
      src.get(cRet);   
      return   cRet;   
  }   
  //   讀入空格   
  char   GetBC(ifstream&   src)   
  {   
      char   cRet;   
      src.get(cRet);   
      while   (cRet   ==   '   ')   
          src.get(cRet);   
      return   cRet;   
  }   
  //   連接單詞符號   
  void   Concat(char   *str,   char   c)   
  {   
      size_t   n   =   strlen(str);   
      str[n++]   =   c;   
      str[n]   =   '\0';   
  }   
  //   判斷是否為保留字   
  bool   Reserve(const   char*   str)   
  {   
      bool   bRet   =   false;   
      for   (int   i   =   0;   i   <   35;   i++)   
      {   
          if   (_stricmp(ReserveWords[i],   str)   ==   0)   
          {   
              bRet   =   true;   
              break;   
          }   
      }   
      return   bRet;   
  }   
  //   回調(diào)字符   
  char   Retract(ifstream&   src)   
  {   
      src.seekg(-1,   ios::cur);   
      return   '\0';   
  }   
  //   分析函數(shù)   
  void   Analyzer(ifstream&   src,   ofstream&   dst)   
  {   
      char   ch;   
      char   strToken[1024]   =   "";   
      ch   =   GetBC(src);   
      //   判斷標識符的情況   
      if   (isalpha(ch))   
      {   
          while   (isalpha(ch)   ||   isdigit(ch)   ||   ch   ==   '_')   
          {   
              Concat(strToken,   ch);   
              ch   =   GetChar(src);   
          }   
          ch   =   Retract(src);   
          if   (Reserve(strToken))   
              dst   <<   strToken   <<   arrow   <<   "Reserve   Word"   <<   enter;   
          else   
              dst   <<   strToken   <<   arrow   <<   "Identifier"   <<   enter;   
      }   
      //   判斷數(shù)值的情況   
      else   if   (isdigit(ch))   
      {   
          while   (isdigit(ch))   
          {   
              Concat(strToken,   ch);   
              ch   =   GetChar(src);   
          }   
          Retract(src);   
          dst   <<   strToken   <<   arrow   <<   "Number"   <<   enter;   
      }   
      //   判斷字符串的情況   
      else   if   (ch   ==   '\'')   
      {   
          Concat(strToken,   ch);   
          ch   =   GetChar(src);   
          while   (ch   !=   '\'')   
          {   
              Concat(strToken,   ch);   
              ch   =   GetChar(src);   
          }   
          if   (ch   !=   '\'')   
              cerr   <<   "String   is   too   long   -   more   than   1024   bytes!"   <<   endl;   
          else   
          {   
              Concat(strToken,   ch);   
              dst   <<   strToken   <<   arrow   <<   "String"   <<   enter;   
          }   
      }   
      //   過濾注釋   
      else   if   (ch   ==   '{')   
      {   
          while   (GetChar(src)   !=   '}')   
              ;   
      }   
      //   判斷所有沒有歧義的單目運算符   
      else   if   (ch   ==   '+')   
          dst   <<   ch   <<   arrow   <<   "Plus"   <<   enter;   
      else   if   (ch   ==   '-')   
          dst   <<   ch   <<   arrow   <<   "Minus"   <<   enter;   
      else   if   (ch   ==   '*')   
          dst   <<   ch   <<   arrow   <<   "Multiply"   <<   enter;   
      else   if   (ch   ==   '/')   
          dst   <<   ch   <<   arrow   <<   "Divide"   <<   enter;   
      else   if   (ch   ==   '=')   
          dst   <<   ch   <<   arrow   <<   "Equal"   <<   enter;   
      else   if   (ch   ==   '[')   
          dst   <<   ch   <<   arrow   <<   "Left   Square   Brackets"   <<   enter;   
      else   if   (ch   ==   ']')   
          dst   <<   ch   <<   arrow   <<   "Right   Square   Brackets"   <<   enter;   
      else   if   (ch   ==   ',')   
          dst   <<   ch   <<   arrow   <<   "Comma"   <<   enter;   
      else   if   (ch   ==   '^')   
          dst   <<   ch   <<   arrow   <<   "Pointer"   <<   enter;   
      else   if   (ch   ==   ';')   
          dst   <<   ch   <<   arrow   <<   "Semicolon"   <<   enter;   
      else   if   (ch   ==   '(')   
          dst   <<   ch   <<   arrow   <<   "Left   Parenthesis"   <<   enter;   
      else   if   (ch   ==   ')')   
          dst   <<   ch   <<   arrow   <<   "Right   Parenthesis"   <<   enter;   
      //   判斷<、<>和<=   
      else   if   (ch   ==   '<')   
      {   
          ch   =   GetChar(src);   
          if   (ch   ==   '>')   
              dst   <<   "<>"   <<   arrow   <<   "Unequal"   <<   enter;   
          else   if   (ch   ==   '=')   
              dst   <<   "<="   <<   arrow   <<   "Less   or   Equal"   <<   enter;   
          else   
          {   
              dst   <<   '<'   <<   arrow   <<   "Less"   <<   enter;   
              Retract(src);   
          }   
      }   
      //   判斷>和>=   
      else   if   (ch   ==   '>')   
      {   
          ch   =   GetChar(src);   
          if   (ch   ==   '=')   
              dst   <<   ">="   <<   arrow   <<   "Greater   or   Equal"   <<   enter;   
          else   
          {   
              dst   <<   '>'   <<   arrow   <<   "Greater"   <<   enter;   
              Retract(src);   
          }   
      }   
      //   判斷.和..   
      else   if   (ch   ==   '.')   
      {   
          ch   =   GetChar(src);   
          if   (ch   ==   '.')   
              dst   <<   ".."   <<   arrow   <<   "Bound"   <<   enter;   
          else   
          {   
              dst   <<   '.'   <<   arrow   <<   "Point"   <<   enter;   
              Retract(src);   
          }   
      }   
      //   判斷:和:=   
      else   if   (ch   ==   ':')   
      {   
          ch   =   GetChar(src);   
          if   (ch   ==   '=')   
              dst   <<   ":="   <<   arrow   <<   "Assign"   <<   enter;   
          else   
          {   
              dst   <<   ':'   <<   arrow   <<   "Colon"   <<   enter;   
              Retract(src);   
          }   
      }   
  }   
  int   main(int   argc,   char*   argv[])   
  {   
      string   strSrc;   
      //   命令行的支持   
      if   (argc   ==   1)   
      {   
          cout   <<   "Please   input   PASCAL   source   file   name:   ";   
          getline(cin,   strSrc);   
      }   
      else   
          strSrc   =   argv[1];   
      //   打開文件   
      ifstream   src(strSrc.c_str());   
      if   (src.fail())   
      {   
          cerr   <<   "\aFailed   openning   \""   <<   strSrc   <<   "\"!"   <<   endl;   
          return   1;   
      }   
      ofstream   dst("Result.txt");   
      //   開始解析   
      while   (!src.eof())   
          Analyzer(src,   dst);   
      //   收尾工作   
      dst.close();   
      src.close();   
      cout   <<   "The   result   of   Analyzing   is   written   into   Result.txt."   <<   endl;   
      return   0;   
  }   

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人伦理电影在线观看| 久久国产精品免费| 在线电影一区二区三区| 国产一区二区三区在线观看免费 | 久久久亚洲午夜电影| 99免费精品视频| 毛片av一区二区| 一区二区三区四区激情| 久久久噜噜噜久久中文字幕色伊伊| 色综合咪咪久久| 国产精品一卡二| 日韩国产欧美三级| 亚洲美女偷拍久久| 国产精品视频线看| 精品国产精品一区二区夜夜嗨| 欧美在线免费视屏| caoporn国产一区二区| 老司机免费视频一区二区| 一区二区三区在线视频观看| 国产欧美精品日韩区二区麻豆天美| 欧美日韩精品电影| 日本久久电影网| 一本到高清视频免费精品| 国产高清不卡二三区| 久久99精品久久久久久| 日本在线不卡一区| 午夜精品久久久久久久久久| 日韩毛片视频在线看| 国产精品色哟哟网站| 国产欧美日韩精品a在线观看| 欧美成人午夜电影| 日韩女优av电影| 91精品国产综合久久久久久 | 一本久道中文字幕精品亚洲嫩| 国产一区二区三区综合| 青青草一区二区三区| 亚洲一区二区精品3399| 一区二区欧美视频| 亚洲国产精品久久艾草纯爱| 亚洲免费视频中文字幕| 亚洲精品国产高清久久伦理二区| 国产精品卡一卡二| 国产精品卡一卡二| 亚洲情趣在线观看| 亚洲欧美日韩电影| 亚洲精品网站在线观看| 亚洲精品国产精华液| 艳妇臀荡乳欲伦亚洲一区| 亚洲色图清纯唯美| 亚洲国产sm捆绑调教视频| 亚洲综合色自拍一区| 午夜精品久久久久久久| 天天av天天翘天天综合网 | 国产.欧美.日韩| 成人三级在线视频| 91视频精品在这里| 欧美日韩视频在线观看一区二区三区| 在线免费观看一区| 在线播放中文一区| 精品国产乱码久久久久久免费 | 国产精品女人毛片| 亚洲乱码一区二区三区在线观看| 一区二区三区四区蜜桃| 偷拍自拍另类欧美| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品亚洲第一 | 欧美一级搡bbbb搡bbbb| 欧美大片拔萝卜| 国产色综合一区| 一区二区三区加勒比av| 日韩高清不卡一区二区| 国产九九视频一区二区三区| 97久久精品人人爽人人爽蜜臀| 欧美色图片你懂的| 欧美大度的电影原声| 中文字幕五月欧美| 午夜精品一区在线观看| 国产精品影音先锋| 在线免费观看日本欧美| 日韩免费高清视频| 中文字幕亚洲欧美在线不卡| 日韩国产欧美视频| 成年人国产精品| 欧美丰满美乳xxx高潮www| 国产情人综合久久777777| 亚洲欧美激情一区二区| 丝袜亚洲另类丝袜在线| 国产成人在线网站| 欧美丝袜丝交足nylons图片| 久久日韩精品一区二区五区| 亚洲精品少妇30p| 久久99精品国产麻豆婷婷洗澡| 色综合久久综合中文综合网| 精品国产一区二区在线观看| 一区二区在线免费观看| 国产高清成人在线| 欧美高清dvd| 亚洲欧美日韩国产成人精品影院 | 久久久国产午夜精品| 亚洲成人av一区| 成人教育av在线| 日韩欧美一区二区在线视频| 亚洲日本电影在线| 激情另类小说区图片区视频区| 色国产精品一区在线观看| 久久综合九色综合97_久久久| 亚洲成人精品一区| 91小宝寻花一区二区三区| 久久久久久久久久久久久女国产乱| 洋洋av久久久久久久一区| 成人手机电影网| 久久品道一品道久久精品| 日韩不卡一区二区三区| 欧美色爱综合网| 亚洲精品视频在线看| 成人精品视频一区二区三区| 精品久久一区二区| 麻豆91精品91久久久的内涵| 欧美性猛交xxxxxx富婆| 亚洲视频在线一区二区| 成人禁用看黄a在线| 欧美激情综合在线| 国产精品白丝av| 精品电影一区二区三区| 美女一区二区久久| 日韩午夜精品电影| 日韩中文字幕亚洲一区二区va在线| 一本大道久久a久久综合| 综合在线观看色| 成人一道本在线| 国产欧美一区二区三区沐欲| 国产成人亚洲综合a∨婷婷| 久久久久久久久久久久久久久99| 九九九精品视频| 欧美成人猛片aaaaaaa| 久久精品av麻豆的观看方式| 日韩一区二区三区视频在线观看| 丝袜美腿亚洲一区| 91精品福利在线一区二区三区| 午夜久久久久久电影| 欧美精品自拍偷拍| 免费成人av在线播放| 精品国产乱码久久久久久图片| 久久成人18免费观看| 久久综合国产精品| 国产高清精品网站| 中文字幕永久在线不卡| 成人av免费在线播放| 成人欧美一区二区三区视频网页| 色哟哟在线观看一区二区三区| 一区二区三区中文字幕电影| 欧美日韩综合在线| 日本欧美大码aⅴ在线播放| 精品国产一区二区三区不卡| 国内精品视频666| 国产精品久久久久久久久免费桃花| 99久久精品情趣| 亚洲成人黄色小说| 精品奇米国产一区二区三区| 国产精品资源站在线| 《视频一区视频二区| 欧美日韩色综合| 久久99精品久久久| 中文字幕亚洲一区二区va在线| 欧美午夜精品免费| 蜜桃精品视频在线观看| 国产日韩高清在线| 一本大道久久a久久综合婷婷| 日韩高清不卡一区二区三区| 久久精品夜夜夜夜久久| 不卡av在线免费观看| 亚洲bt欧美bt精品| 久久久99精品久久| 在线观看免费一区| 狠狠色丁香婷婷综合| 亚洲欧美日韩系列| 精品国产亚洲一区二区三区在线观看| 成人精品国产一区二区4080| 天堂精品中文字幕在线| 亚洲国产成人一区二区三区| 欧美午夜在线一二页| 国内久久婷婷综合| 亚洲一区在线观看网站| 久久色视频免费观看| 欧美图区在线视频| 国产激情视频一区二区三区欧美| 亚洲无人区一区| 亚洲国产高清在线| 日韩天堂在线观看| 色av成人天堂桃色av| 国产米奇在线777精品观看| 亚洲综合色婷婷| 欧美激情在线看| 日韩视频一区在线观看| 色视频一区二区| 国产成人鲁色资源国产91色综 | 国产一区二区中文字幕| 亚洲国产毛片aaaaa无费看| 国产欧美一区二区三区沐欲| 欧美一区二区播放|