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

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

?? slprectree.java

?? compiler constructor using the recursive deceiding way
?? JAVA
字號:
/************************************************************
 * This is a recursive descent tree builder 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 SLPRecTree implements SLPTokeniserConstants {

  public static Token t;

  public static Stm Stm() {
    Stm s=null;
    String id;
    Exp e;
    ExpList el;

    if (t.kind == ID) {
      id = t.image;
      t = SLPTokeniser.getNextToken();
      if (t.kind == ASSIGN) {
        t = SLPTokeniser.getNextToken();
        e = Exp();
        s = new AssignStm(id,e);
      }
      else
        error(":=");
    }
    else if (t.kind == PRINT) {
           t = SLPTokeniser.getNextToken();
           if (t.kind == LBR) {
             t = SLPTokeniser.getNextToken();
             el = ExpList();
             if (t.kind == RBR) {
               t = SLPTokeniser.getNextToken();
               s = new PrintStm(el);
             }
             else 
               error(")");
           }
           else
             error("(");
         }
         else
           error("identifier or print");
    return Stm_Prime(s); 
  }

  public static Stm Stm_Prime(Stm s1) {
    Stm s2;

    if (t.kind == SEMIC) {
      t = SLPTokeniser.getNextToken();
      s2 = Stm();
      return new CompoundStm(s1,s2);
    }
    else
      return s1;
  }

  public static Exp Exp() {
    Exp e=null;
    Stm s;
   
    if (t.kind == ID) {
      e = new IdExp(t.image);
      t = SLPTokeniser.getNextToken(); 
    }
    else if (t.kind == NUM) {
      e = new NumExp(Integer.parseInt(t.image));
      t = SLPTokeniser.getNextToken();
    }
    else if (t.kind == LBR) {
           t = SLPTokeniser.getNextToken();
           s = Stm();
           if (t.kind == COMMA) {
             t = SLPTokeniser.getNextToken();
             e = Exp();
             if (t.kind == RBR) {
               t = SLPTokeniser.getNextToken();
               e = new EseqExp(s,e);
             }
             else
               error(")");
           }
           else
             error(",");
         }
         else
           error("identifier, number or (");
    return Exp_Prime(e);
  }

  public static Exp Exp_Prime(Exp e1) {
    int oper;
    Exp e2;

    switch(t.kind) {
      case PLUS_SIGN: 
        Binop();
        e2 = Exp();
        return new OpExp(e1,1,e2);
      case MINUS_SIGN: 
        Binop();
        e2 = Exp();
        return new OpExp(e1,2,e2);
      case MULT_SIGN: 
        Binop();
        e2 = Exp();
        return new OpExp(e1,3,e2);
      case DIV_SIGN: 
        Binop();
        e2 = Exp();
        return new OpExp(e1,4,e2);
      default:
        return e1;
    }
  }

  public static ExpList ExpList() {
    Exp e;

    e = Exp();
    return ExpList_Prime(e);
  }
 
  public static ExpList ExpList_Prime(Exp e) {
    ExpList el;

    if (t.kind == COMMA) {
      t = SLPTokeniser.getNextToken();
      el = ExpList();
      return new PairExpList(e,el);
    }
    else
      return new LastExpList(e);
  }

  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 TreeBuilder:  Usage is one of:");
      System.out.println("         java SLPRecTree < inputfile");
      System.out.println("OR");
      System.out.println("         java SLPRecTree inputfile");
      return;
    }
    t = SLPTokeniser.getNextToken();
    Stm s = Stm();
    s.interp();
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看av不卡| 97久久超碰精品国产| 亚洲蜜臀av乱码久久精品蜜桃| 日韩午夜av电影| 日韩一卡二卡三卡| 精品久久五月天| 精品国产乱码久久久久久老虎| 91精品国产综合久久久久久| 欧美放荡的少妇| 欧美一区二区三区免费在线看| 欧美美女直播网站| 日韩一级二级三级| 国产日韩av一区| 中文字幕av免费专区久久| 成人欧美一区二区三区黑人麻豆| 亚洲欧洲三级电影| 亚洲成人自拍一区| 久久福利资源站| 丰满岳乱妇一区二区三区 | 欧美日韩成人高清| 欧美人xxxx| 精品av综合导航| 中文字幕一区不卡| 偷拍自拍另类欧美| 国产一区二区三区最好精华液| 国产精品影音先锋| 91美女视频网站| 91精品欧美综合在线观看最新| 久久免费午夜影院| 成人免费一区二区三区视频 | 亚洲妇熟xx妇色黄| 久久精品国产在热久久| 高清shemale亚洲人妖| 在线观看日韩国产| 精品粉嫩aⅴ一区二区三区四区| 国产日韩v精品一区二区| 亚洲午夜一区二区三区| 韩国女主播成人在线| 色妞www精品视频| 欧美一区二区三区的| 国产精品久久毛片| 美女脱光内衣内裤视频久久网站| eeuss鲁片一区二区三区在线观看| 欧美亚男人的天堂| 久久精品在线观看| 午夜精品福利在线| 99精品欧美一区二区三区小说| 91精品国产一区二区三区香蕉| 日本一区二区三区四区| 日本亚洲三级在线| 色94色欧美sute亚洲线路一ni| 精品国产免费人成电影在线观看四季| 亚洲色图在线视频| 精品系列免费在线观看| 欧美日韩成人综合在线一区二区| 亚洲国产精品av| 热久久国产精品| 欧美日韩日本视频| 亚洲视频免费观看| 成人爱爱电影网址| 日本一区二区三区dvd视频在线| 日韩精品一级二级| 欧美午夜在线一二页| 专区另类欧美日韩| 成人av动漫在线| 久久精子c满五个校花| 精品亚洲免费视频| 欧美成人精品福利| 精品写真视频在线观看| 欧美成人性战久久| 久久99国产精品久久| 日韩一区二区三区四区| 日韩精品1区2区3区| 欧美日韩中文字幕一区| 亚洲一区二区三区中文字幕 | 亚洲国产精品麻豆| 欧美亚洲国产一区二区三区| 日韩理论片网站| 91美女片黄在线| 亚洲综合小说图片| 欧美日韩国产综合久久| 午夜在线电影亚洲一区| 欧美日韩精品系列| 蜜臀av亚洲一区中文字幕| 日韩一级大片在线观看| 黄色小说综合网站| 国产日韩欧美精品在线| 成人少妇影院yyyy| 综合色天天鬼久久鬼色| 91久久奴性调教| 亚洲一区在线视频| 欧美一区二区免费观在线| 久久精品国产免费| 中文字幕av一区二区三区| 91免费在线视频观看| 亚洲午夜激情av| 日韩欧美久久久| 国产精品一二一区| 亚洲人成伊人成综合网小说| 91小视频免费看| 日韩国产欧美视频| 久久精品一区四区| 在线一区二区三区四区五区| 午夜精品久久久久久久蜜桃app| 欧美高清精品3d| 国产一区二区在线看| 亚洲欧美欧美一区二区三区| 欧美色窝79yyyycom| 久久激情综合网| 国产精品白丝在线| 欧美一区二区三区在线看| 丰满少妇在线播放bd日韩电影| 一区二区三区在线观看视频| 欧美一二三区精品| 99久久精品情趣| 美女性感视频久久| 一级特黄大欧美久久久| 精品国一区二区三区| 色女孩综合影院| 国产成人无遮挡在线视频| 亚洲自拍偷拍九九九| 日韩精品一区二区三区四区视频 | 亚洲一区电影777| 久久久久久毛片| 91精品综合久久久久久| 91老司机福利 在线| 国模一区二区三区白浆| 亚洲午夜激情av| 最近日韩中文字幕| 久久久精品日韩欧美| 欧美老人xxxx18| 一本一道久久a久久精品| 精品一区二区av| 裸体健美xxxx欧美裸体表演| 亚洲精品久久7777| 国产精品黄色在线观看| 精品国产免费视频| 91精品国产综合久久精品| 欧美在线你懂得| 色综合网站在线| www.av精品| 国产成人av电影在线| 黄色资源网久久资源365| 丝袜诱惑亚洲看片| 一区二区三区在线视频观看| 国产精品久久久久桃色tv| 久久日一线二线三线suv| 91精品国产综合久久小美女| 欧美日韩一区二区在线观看视频| 色综合色狠狠综合色| 99国产精品国产精品久久| www.欧美.com| av中文字幕不卡| 色综合久久久久综合体桃花网| 99vv1com这只有精品| gogo大胆日本视频一区| 91亚洲大成网污www| 91丨porny丨在线| 一本色道久久综合亚洲精品按摩| 95精品视频在线| 色天天综合久久久久综合片| 91黄色激情网站| 欧美精品第一页| 日韩欧美一区二区免费| 欧美成人三级在线| 久久人人97超碰com| 欧美—级在线免费片| 中文字幕亚洲欧美在线不卡| 亚洲免费观看高清完整| 天使萌一区二区三区免费观看| 免费av成人在线| 国产精品一区专区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲一区二区三区四区中文字幕| 亚洲影院久久精品| 免费av网站大全久久| 国产成人午夜电影网| 在线精品国精品国产尤物884a| 欧美剧在线免费观看网站| 精品国免费一区二区三区| 国产精品传媒在线| 亚洲国产精品人人做人人爽| 精品在线免费观看| 91在线国产福利| 日韩视频在线一区二区| 国产精品拍天天在线| 亚洲一区二区视频在线| 狠狠色丁香九九婷婷综合五月| 成人高清伦理免费影院在线观看| 欧美日韩在线三区| 久久久久久久久久久久久久久99| 亚洲精品国产一区二区三区四区在线| 日本不卡高清视频| 91最新地址在线播放| 日韩精品一区二区三区视频在线观看 | 欧洲色大大久久| 久久久av毛片精品| 午夜精品影院在线观看| 丰满放荡岳乱妇91ww| 日韩亚洲欧美在线|