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

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

?? slprecdes.java

?? compiler constructor using the recursive deceiding way
?? JAVA
字號:
/************************************************************
 * This is a recursive descent parser for the SLP language. *
 * This parser uses the SLP lexical analyser produced by    *
 * JavaCC. Before implementing the parser, the grammar of   *
 * the language was converted into the following form to    *
 * allow predictive parsing:                                *
 *                                                          *
 * Stm -> id := Exp Stm'                                    *
 *      | print ( ExpList ) Stm'                            *
 * Stm' -> ; Stm                                            *
 *       | (empty string)                                   *
 * Exp -> id Exp'                                           *
 *      | num Exp'                                          *
 *      | ( Stm , Exp ) Exp'                                *
 * Exp' -> Binop Exp                                        *
 *       | (empty string)                                   *
 * ExpList -> Exp ExpList'                                  *
 * ExpList' -> , ExpList                                    *
 *           | (empty string)                               *
 * Binop -> +                                               *
 *        | -                                               *
 *        | *                                               *
 *        | /                                               *
 *                                                          *
 ************************************************************/

public class SLPRecDes implements SLPTokeniserConstants {

  public static Token t;

  public static void Stm() {
    if (t.kind == ID) {
      t = SLPTokeniser.getNextToken();
      if (t.kind == ASSIGN) {
        t = SLPTokeniser.getNextToken();
        Exp();
        Stm_Prime();
      }
      else
        error(":=");
    }
    else if (t.kind == PRINT) {
           t = SLPTokeniser.getNextToken();
           if (t.kind == LBR) {
             t = SLPTokeniser.getNextToken();
             ExpList();
             if (t.kind == RBR) {
               t = SLPTokeniser.getNextToken();
               Stm_Prime();
             }
             else 
               error(")");
           }
           else
             error("(");
         }
         else
           error("identifier or print");
  }

  public static void Stm_Prime() {
    if (t.kind == SEMIC) {
      t = SLPTokeniser.getNextToken();
      Stm();
    }
  }

  public static void Exp() {
    if ((t.kind == ID) || (t.kind == NUM)) {
      t = SLPTokeniser.getNextToken();
      Exp_Prime();
    }
    else if (t.kind == LBR) {
           t = SLPTokeniser.getNextToken();
           Stm();
           if (t.kind == COMMA) {
             t = SLPTokeniser.getNextToken();
             Exp();
             if (t.kind == RBR) {
               t = SLPTokeniser.getNextToken();
               Exp_Prime();
             }
             else
               error(")");
           }
           else
             error(",");
         }
         else
           error("identifier, number or (");
  }

  public static void Exp_Prime() {
    if ((t.kind == PLUS_SIGN) || (t.kind == MINUS_SIGN) || (t.kind == MULT_SIGN) || (t.kind == DIV_SIGN)) {
      Binop();
      Exp();
    }
  }

  public static void ExpList() {
    Exp();
    ExpList_Prime();
  }
 
  public static void ExpList_Prime() {
    if (t.kind == COMMA) {
      t = SLPTokeniser.getNextToken();
      ExpList();
    }
  }

  public static void Binop() {
    t = SLPTokeniser.getNextToken();
  }

  /*
   * The error routine prints out the line number of the error,
   * along with the encountered lexeme. The String argument 
   * indicates which tokens were expected in the input.
   */

  public static void error(String msg) {
    System.out.print("Syntax error at line " + t.beginLine);
    System.out.println(": encountered " + t.image + " when " + msg + " expected");
    System.exit(0);
 }

  public static void main(String args[]) {

    SLPTokeniser tokeniser;

    /* 
     * Firstly, decide if we're taking input from standard input
     * or from a file whose name was given as an argument...
     * (This piece of code is fairly standard)
     */
    
    if (args.length == 0) {
      System.out.println("Reading from standard input . . .");
      tokeniser = new SLPTokeniser(System.in);
    } else if (args.length == 1) {
      try {
        tokeniser = new SLPTokeniser(new java.io.FileInputStream(args[0]));
      } catch (java.io.FileNotFoundException e) {
        System.err.println("File " + args[0] + " not found.");
        return;
      }
    } else {
      System.out.println("SLP Recursive Descent Parser:  Usage is one of:");
      System.out.println("         java SLPRecDes < inputfile");
      System.out.println("OR");
      System.out.println("         java SLPRecDes inputfile");
      return;
    }
    t = SLPTokeniser.getNextToken();
    Stm();
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久九九久久九九| 亚洲成av人综合在线观看| 亚洲欧洲国产专区| 视频一区视频二区在线观看| 国产麻豆精品一区二区| 欧美调教femdomvk| 国产农村妇女精品| 六月丁香婷婷色狠狠久久| 在线观看欧美黄色| 国产亚洲一区二区三区| 蜜臀久久久久久久| 色综合天天综合色综合av| 久久久另类综合| 日韩电影在线看| 91福利在线看| 一区二区在线观看不卡| 岛国一区二区在线观看| xfplay精品久久| 麻豆传媒一区二区三区| 在线播放91灌醉迷j高跟美女 | 国产精品乡下勾搭老头1| 欧美色图12p| 一二三区精品视频| 成人app软件下载大全免费| 精品福利一二区| 免费成人你懂的| 精品久久久久久最新网址| 午夜激情一区二区三区| 欧美亚洲一区二区在线观看| 中文字幕中文字幕一区| 成人av在线电影| 中文字幕中文在线不卡住| 成人网页在线观看| 国产精品美女视频| 成人黄色一级视频| 亚洲成人综合视频| 欧美一区永久视频免费观看| 午夜国产精品影院在线观看| 精品视频在线免费看| 日日骚欧美日韩| 日韩精品最新网址| 国产精品538一区二区在线| 久久久.com| 94-欧美-setu| 日日夜夜精品免费视频| 日韩精品一区在线观看| 国产伦精品一区二区三区在线观看| 日韩免费视频一区二区| 国产精品一区在线观看你懂的| 日本一区二区成人| 色88888久久久久久影院按摩| 一区二区三区中文字幕电影 | 91精品国产综合久久久蜜臀图片| 午夜久久久久久久久久一区二区| 欧美性猛交xxxxxxxx| 日本不卡视频在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 国产一区二区三区四区在线观看| 中文一区在线播放| 欧美性感一类影片在线播放| 天堂一区二区在线| 久久精品亚洲麻豆av一区二区| 成人黄色a**站在线观看| 亚洲免费在线视频一区 二区| 欧美美女网站色| 国产精品一卡二卡| 亚洲免费高清视频在线| 精品少妇一区二区三区免费观看| 国产99久久久精品| 五月开心婷婷久久| 国产拍欧美日韩视频二区| 欧美自拍偷拍一区| 国产一区二区看久久| 亚洲一区免费在线观看| 国产日韩精品一区二区三区| 91小视频免费观看| 激情文学综合丁香| 一区二区三区成人| 久久久国产精品午夜一区ai换脸| 欧美特级限制片免费在线观看| 久久爱www久久做| 亚洲欧美日韩精品久久久久| 欧美xxxxxxxx| 精品视频在线免费| 91亚洲国产成人精品一区二区三| 另类小说欧美激情| 一片黄亚洲嫩模| 欧美国产欧美综合| 欧美r级在线观看| 欧美日韩国产bt| 99精品久久免费看蜜臀剧情介绍 | 樱花草国产18久久久久| 久久久亚洲精品石原莉奈| 欧美精品v国产精品v日韩精品 | 国产精品成人午夜| 久久综合成人精品亚洲另类欧美 | 日韩丝袜情趣美女图片| 色综合天天综合| 成人av影院在线| 国产不卡视频在线播放| 麻豆高清免费国产一区| 丝袜亚洲另类丝袜在线| 亚洲精品福利视频网站| 一区二区中文字幕在线| 欧美极品xxx| 日本一区二区视频在线| 久久九九影视网| 久久你懂得1024| xfplay精品久久| 久久免费电影网| 久久九九久精品国产免费直播| 精品福利一二区| 国产午夜亚洲精品理论片色戒| 精品国产sm最大网站免费看| 欧美大片一区二区三区| 日韩久久久久久| 精品国产乱码久久久久久影片| 欧美精选一区二区| 欧美一区日本一区韩国一区| 4438亚洲最大| 亚洲精品一区二区在线观看| 精品国产免费一区二区三区四区 | 欧美一区二区三区视频在线观看| 欧洲在线/亚洲| 欧美人狂配大交3d怪物一区| 欧美另类一区二区三区| 欧美一区二区三区电影| 精品久久人人做人人爽| 久久久99精品免费观看不卡| 欧美激情一区不卡| 亚洲视频一区在线| 亚洲成人三级小说| 久久国内精品自在自线400部| 激情欧美一区二区三区在线观看| 国产成人久久精品77777最新版本| 国产曰批免费观看久久久| 成人爽a毛片一区二区免费| 91美女在线看| 日韩久久免费av| 综合电影一区二区三区| 亚洲国产精品人人做人人爽| 久久成人免费网站| 成人精品小蝌蚪| 欧美系列一区二区| 久久网站热最新地址| 亚洲免费观看高清完整| 蜜臀av性久久久久蜜臀aⅴ四虎 | 色综合夜色一区| 日韩一区和二区| 亚洲欧美日本韩国| 蜜桃久久久久久| 99视频精品在线| 欧美一区二区人人喊爽| 国产精品美女久久久久久久久| 亚洲午夜在线观看视频在线| 国产精品一区二区久激情瑜伽 | 成人黄色小视频| 91精品国产免费久久综合| 国产精品天天看| 日本视频一区二区三区| www.色综合.com| 精品国产一区二区亚洲人成毛片| 自拍偷拍国产亚洲| 国产在线观看免费一区| 欧美日韩国产一二三| 国产精品无遮挡| 国产在线国偷精品免费看| 欧美日韩国产一级| 自拍偷拍国产精品| 国产麻豆精品视频| 日韩亚洲国产中文字幕欧美| 亚洲精品老司机| 成人爱爱电影网址| 国产人妖乱国产精品人妖| 日韩国产欧美在线视频| 欧美主播一区二区三区美女| 日本一区二区成人| 国产精品一区二区在线看| 91精品国产综合久久小美女| 一区二区日韩av| 99精品欧美一区二区三区小说| xfplay精品久久| 精品亚洲porn| 日韩欧美一区二区在线视频| 午夜欧美2019年伦理| 欧美性欧美巨大黑白大战| 国产精品家庭影院| 丁香激情综合五月| 久久在线免费观看| 久久成人久久鬼色| 精品国产区一区| 久草精品在线观看| 久久众筹精品私拍模特| 久久99精品久久久久婷婷| 91精品免费观看| 日韩av高清在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲一二三级电影| 欧美天堂一区二区三区| 亚洲成a人v欧美综合天堂|