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

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

?? table.java

?? 完成編譯器的基本功能,并且有界面,簡單好用
?? JAVA
字號:
package compiler.pl0;

/**
 * 符號類型,為避免和Java的關鍵字Object沖突,我們改成Objekt
 */
enum Objekt {
      constant, variable, procedure
}

/**
 *  這個類封裝了PL/0編譯器的符號表,C語言版本中關鍵的全局變量tx和table[]就在這里。
 */
public class Table {
      /**
       *  即C語言版本中的tablestruct結構。
       */
      Err err = new Err();
      public String ss = "";

      public class Item {
            String name; // 名字
            Objekt kind; // 類型:const, var or procedure
            int val; // 數值,僅const使用
            int level; // 所處層,var和procedure使用
            int adr; // 地址,var和procedure使用
            int size; // 需要分配的數據區空間, 僅procedure使用	//array也使用
      }

      /**
       * 名字表,請使用get()函數訪問
       * @see #get(int)
       */
      private Item[] table = new Item[PL0.txmax];

      /**
       * 當前名字表項指針,也可以理解為當前有效的名字表大小(table size)
       */
      public int tx = 0;

      /**
       * 獲得名字表某一項的內容
       * @param i 名字表中的位置
       * @return 名字表第 i 項的內容
       */
      public Item get(int i) {
            if (table[i] == null) {
                  table[i] = new Item();
                  table[i].name = "";
            }
            return table[i];
      }

      /**
       * 把某個符號登陸到名字表中,注意參數跟C語言版本不同
       * @param sym 要登陸到名字表的符號
       * @param k   該符號的類型:const, var, procedure
       * @param lev 名字所在的層次
       * @param dx  當前應分配的變量的相對地址,注意調用enter()后dx要加一
       */
      public void enter(Symbol sym, Objekt k, int lev, int dx) {
            tx++;
            Item item = get(tx);
            item.name = PL0.lex.id; // 注意id和num都是從詞法分析器獲得
            item.kind = k;
            switch (k) {
                  case constant: // 常量名字
                        if (PL0.lex.num > PL0.amax) {
                              String ss1 = err.report(31); // 數字過大溢出
                              ss = ss + ss1 + "\n";
                              item.val = 0;
                        }
                        else {
                              item.val = PL0.lex.num;
                        }
                        break;
                  case variable: // 變量名字
                        item.level = lev;
                        item.adr = dx;
                        break;
                  case procedure: // 過程名字
                        item.level = lev;
                        break;

            }
      }

      /**
       * 打印符號表內容,摘自C語言版本的 block() 函數。
       * @param start 當前作用域符號表區間的左端
       */
      public void debugTable(int start) {
            if (!PL0.tableswitch) {
                  return;
            }
            System.out.println("TABLE:");
            if (start > tx) {
                  System.out.println("    NULL");
            }
            for (int i = start + 1; i <= tx; i++) {
                  String msg = "OOPS! UNKNOWN TABLE ITEM!";
                  switch (table[i].kind) {
                        case constant:
                              msg = "    " + i + " const " + table[i].name +
                                  " val=" + table[i].val;
                              break;
                        case variable:
                              msg = "    " + i + " var   " + table[i].name +
                                  " lev=" + table[i].level + " addr=" +
                                  table[i].adr;
                              break;
                        case procedure:
                              msg = "    " + i + " proc  " + table[i].name +
                                  " lev=" + table[i].level + " addr=" +
                                  table[i].adr + " size=" + table[i].size;
                              break;
                  }
                  System.out.println(msg);
                  PL0.fas.println(msg);
            }
            System.out.println();
      }

      /**
       * 在名字表中查找某個名字的位置
       * @param idt 要查找的名字
       * @return 如果找到則返回名字項的下標,否則返回0
       */
      public int position(String idt) {
            for (int i = tx; i > 0; i--) {
                  if (get(i).name.equals(idt)) {
                        return i;
                  }
            }
            return 0;
      }

      public String ret() {
           return ss;
     }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产清纯白嫩初高生在线观看91| 偷窥国产亚洲免费视频| 亚洲精品国产一区二区精华液| 日韩精品久久久久久| 成人白浆超碰人人人人| 日韩精品一区二区三区视频 | 国产99久久久久久免费看农村| 在线亚洲+欧美+日本专区| 久久久www免费人成精品| 午夜视频在线观看一区二区三区| 成人免费毛片app| 久久久精品国产99久久精品芒果 | 在线不卡免费av| 国产精品白丝在线| 国产一区二区三区免费| 91精品国产欧美日韩| 亚洲精品中文在线观看| 国产成人欧美日韩在线电影| 日韩免费电影一区| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美最新大片在线看| 亚洲视频在线观看三级| 大美女一区二区三区| 久久久亚洲精品石原莉奈| 美女在线一区二区| 日韩欧美中文字幕公布| 日韩电影免费在线看| 欧美日韩亚洲国产综合| 亚洲国产色一区| 欧美色图天堂网| 天天综合色天天| 欧美日韩国产成人在线免费| 亚洲国产欧美一区二区三区丁香婷| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲免费观看在线观看| 一本久道久久综合中文字幕| 亚洲免费在线看| 欧美视频在线播放| 日韩国产欧美在线播放| 欧美一区二区三区精品| 麻豆一区二区三区| 久久久午夜精品理论片中文字幕| 国产一区二区免费视频| 国产精品久久免费看| 色综合天天综合色综合av| 亚洲精品国产成人久久av盗摄| 91亚洲精品一区二区乱码| 亚洲一区二区三区四区五区黄| 91精品国产高清一区二区三区蜜臀| 秋霞电影网一区二区| 久久久久国产一区二区三区四区 | 亚洲色大成网站www久久九九| 99国产精品久久| 亚洲国产精品一区二区久久恐怖片| 欧美一级国产精品| 国产一区不卡视频| 亚洲欧美日韩系列| 日韩欧美国产一区二区三区| 国产一区二区在线观看免费| 亚洲欧美日本韩国| 日韩一区二区三区在线| 成人免费看的视频| 午夜久久久久久| 中文字幕第一页久久| 欧美日韩一级片网站| 国产麻豆成人精品| 亚洲福利电影网| 欧美国产一区二区| 欧美精品久久久久久久久老牛影院| 久久99国产乱子伦精品免费| 中文字幕在线视频一区| 777a∨成人精品桃花网| 国产精品亚洲视频| 日韩高清一区二区| 自拍视频在线观看一区二区| 91精品免费观看| 91丨porny丨在线| 国产一区二区伦理| 午夜日韩在线电影| 亚洲人xxxx| 中文字幕免费在线观看视频一区| 91精品国产综合久久国产大片| 97se亚洲国产综合自在线观| 极品少妇xxxx精品少妇| 亚洲制服丝袜一区| 中文字幕在线一区| 久久综合色8888| 9191国产精品| 日本精品免费观看高清观看| 国产91在线看| 国产专区欧美精品| 奇米精品一区二区三区四区 | 国产女人水真多18毛片18精品视频 | 亚洲精品乱码久久久久久久久| 亚洲精品一区二区三区香蕉 | 日韩在线a电影| 亚洲人成7777| 中文字幕一区二区三区乱码在线| 欧美电影免费观看完整版| 91精品在线免费| 欧美性受xxxx黑人xyx| 91丨porny丨蝌蚪视频| 国产成人福利片| 国产福利精品导航| 紧缚捆绑精品一区二区| 舔着乳尖日韩一区| 视频一区视频二区中文字幕| 亚洲午夜一区二区| 亚洲国产视频一区| 天天做天天摸天天爽国产一区| 亚洲狠狠爱一区二区三区| 一卡二卡三卡日韩欧美| 一区二区三区国产精品| 樱桃视频在线观看一区| 一区二区三区不卡在线观看| 亚洲欧美日韩久久| 亚洲最新在线观看| 亚洲高清中文字幕| 欧美aⅴ一区二区三区视频| 日韩成人一区二区| 久草中文综合在线| 国产毛片精品国产一区二区三区| 精品一区二区三区的国产在线播放| 久久国产精品第一页| 国产成人精品一区二| www.欧美色图| 欧美日韩一区二区三区在线| 欧美丰满美乳xxx高潮www| 精品理论电影在线观看| 久久久91精品国产一区二区三区| 国产丝袜美腿一区二区三区| 中文字幕一区日韩精品欧美| 一区二区久久久久久| 日日夜夜精品视频免费| 黄色小说综合网站| 99精品视频中文字幕| 欧美日本精品一区二区三区| 2024国产精品| 亚洲色欲色欲www在线观看| 亚洲自拍偷拍网站| 久久99国产乱子伦精品免费| 成人a免费在线看| 欧美日韩国产成人在线免费| 久久婷婷国产综合精品青草| 亚洲欧美在线aaa| 日本色综合中文字幕| 成人黄色在线网站| 91.麻豆视频| 中文字幕视频一区| 日日夜夜一区二区| 波多野结衣中文一区| 制服丝袜亚洲色图| 国产精品毛片大码女人| 亚洲6080在线| 国产不卡免费视频| 88在线观看91蜜桃国自产| 国产精品久久毛片| 蜜桃91丨九色丨蝌蚪91桃色| bt7086福利一区国产| 欧美巨大另类极品videosbest| 欧美国产日本视频| 美女视频一区二区| 欧美性做爰猛烈叫床潮| 国产清纯白嫩初高生在线观看91 | 欧美一区二区三区在| 亚洲欧洲三级电影| 激情综合网天天干| 欧美日本高清视频在线观看| 国产日本欧洲亚洲| 久久精品国产秦先生| 欧美日韩中字一区| 亚洲人成在线播放网站岛国| 国产在线视视频有精品| 91精品国产色综合久久不卡电影| 亚洲精品欧美二区三区中文字幕| 丰满岳乱妇一区二区三区| 欧美一卡2卡3卡4卡| 一级做a爱片久久| 色婷婷综合久色| 亚洲欧洲www| www.亚洲激情.com| 国产欧美视频一区二区| 国产精品一区三区| 日韩三级免费观看| 日韩精品色哟哟| 制服视频三区第一页精品| 夜夜嗨av一区二区三区网页| 91论坛在线播放| 亚洲视频在线观看一区| 91一区二区三区在线播放| 国产精品久久久一本精品| 大桥未久av一区二区三区中文| 国产日韩欧美综合一区| 国产成人精品三级麻豆| 国产亚洲一区二区在线观看| 国产做a爰片久久毛片| 欧美不卡123| 国产乱色国产精品免费视频| 久久综合色综合88| 国产91丝袜在线播放|