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

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

?? scanner.java.svn-base

?? 類似QQ的功能
?? SVN-BASE
字號(hào):
/*******************************************************************************SiJaPP - Simple Java PreProcessorCopyright (C) 2003  Manuel LinsmayerThis program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.*******************************************************************************/package sijapp;import java.util.Vector;public class Scanner {  // Alphabetic character test  private static boolean isAlpha(char c) {    return (((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z')));  }  // Numeric character test  private static boolean isNumeric(char c) {    return ((c >= '0') && (c <= '9'));  }  // Whitespace test  private static boolean isWhitespace(char c) {    return ((c == ' ') || (c == '\t'));  }  // Exclamation markt test  private static boolean isExclamationMark(char c) {    return (c == '!');  }  // Quote test  private static boolean isQuote(char c) {    return (c == '"');  }  // Pound test  private static boolean isPound(char c) {    return (c == '#');  }  // Ampersand test  private static boolean isAmpersand(char c) {    return (c == '&');  }  // Opening parenthesis test  private static boolean isOpeningParenthesis(char c) {    return (c == '(');  }  // Closing parenthesis test  private static boolean isClosingParenthesis(char c) {    return (c == ')');  }  // Dot test  private static boolean isDot(char c) {    return (c == '.');  }  // Equals sign test  private static boolean isEqualsSign(char c) {    return (c == '=');  }  // Backslash test  private static boolean isBackslash(char c) {    return (c == '\\');  }  // Underscore  private static boolean isUnderscore(char c) {    return (c == '_');  }  // Vertical bar test  private static boolean isVerticalBar(char c) {    return (c == '|');  }  // Scanner  public static Token[] scan(String s) throws SijappException {    // Look for SiJaPP statement    if (s.indexOf("#sijapp") == -1) {      return (new Token[0]);    }    // Crop anything to the left    StringBuffer buf = new StringBuffer(s.substring(s.indexOf("#sijapp")) + " ");    // Vector    Vector tokens = new Vector();    // Required string buffers    StringBuffer ident = null;    StringBuffer string = null;    // State variable    int state = 0;    // Exit flag    boolean exit = false;    // Scanner main loop    do {      // Get next character      char ch = buf.charAt(0);      buf.deleteCharAt(0);      // Deterministic finite automaton, see README file      switch (state) {        case 0:          if (Scanner.isPound(ch)) {            ident = new StringBuffer();            state = 1;            break;          }          else if (Scanner.isAlpha(ch) || Scanner.isUnderscore(ch)) {            ident = new StringBuffer();            ident.append(ch);            state = 3;            break;          }          else if (Scanner.isDot(ch)) {            state = 4;            break;          }          else if (Scanner.isQuote(ch)) {            string = new StringBuffer();            state = 5;            break;          }          else if (Scanner.isWhitespace(ch)) {            state = 8;            break;          }          else if (Scanner.isOpeningParenthesis(ch)) {            state = 9;            break;          }          else if (Scanner.isClosingParenthesis(ch)) {            state = 10;            break;          }          else if (Scanner.isEqualsSign(ch)) {            state = 11;            break;          }          else if (Scanner.isExclamationMark(ch)) {            state = 12;            break;          }          else if (Scanner.isAmpersand(ch)) {            state = 14;            break;          }          else if (Scanner.isVerticalBar(ch)) {            state = 15;            break;          }          else {            throw (new SijappException("Syntax error"));          }        case 1:          if (Scanner.isAlpha(ch) || Scanner.isUnderscore(ch)) {            ident.append(ch);            state = 2;            break;          }          else {            tokens.add(new Token(Token.T_MAGIC_END, null));            exit = true;            buf.insert(0, ch);            state = 0;            break;          }        case 2:          if (Scanner.isAlpha(ch) || Scanner.isNumeric(ch) || Scanner.isUnderscore(ch)) {            ident.append(ch);            state = 2;            break;          }          else {            if (ident.toString().equals("sijapp")) {              tokens.add(new Token(Token.T_MAGIC_BEGIN, null));              buf.insert(0, ch);              state = 0;              break;            }            else {              throw (new SijappException("Syntax error"));            }          }        case 3:          if (Scanner.isAlpha(ch) || Scanner.isNumeric(ch) || Scanner.isUnderscore(ch)) {            ident.append(ch);            state = 3;            break;          }          else {            if (ident.toString().equals("true")) {              tokens.add(new Token(Token.T_BOOL, new Boolean(true)));            }            else if (ident.toString().equals("false")) {              tokens.add(new Token(Token.T_BOOL, new Boolean(false)));            }            else if (ident.toString().equals("cond") || ident.toString().equals("condition")) {              tokens.add(new Token(Token.T_CMD1_COND, null));            }            else if (ident.toString().equals("echo")) {              tokens.add(new Token(Token.T_CMD1_ECHO, null));            }            else if (ident.toString().equals("env") || ident.toString().equals("environment")) {              tokens.add(new Token(Token.T_CMD1_ENV, null));            }            else if (ident.toString().equals("exit")) {              tokens.add(new Token(Token.T_CMD1_EXIT, null));            }            else if (ident.toString().equals("if") || ident.toString().equals("If")) {              tokens.add(new Token(Token.T_CMD2_IF, null));            }            else if (ident.toString().equals("elseif")) {              tokens.add(new Token(Token.T_CMD2_ELSEIF, null));            }            else if (ident.toString().equals("else")) {              tokens.add(new Token(Token.T_CMD2_ELSE, null));            }            else if (ident.toString().equals("end")) {              tokens.add(new Token(Token.T_CMD2_END, null));            }            else if (ident.toString().equals("def") || ident.toString().equals("define")) {              tokens.add(new Token(Token.T_CMD2_DEF, null));            }            else if (ident.toString().equals("undef") || ident.toString().equals("undefine")) {              tokens.add(new Token(Token.T_CMD2_UNDEF, null));            }            else if (ident.toString().equals("is")) {              tokens.add(new Token(Token.T_EXPR_EQ, null));            }            else if (ident.toString().equals("isnot")) {              tokens.add(new Token(Token.T_EXPR_NEQ, null));            }            else if (ident.toString().equals("not")) {              tokens.add(new Token(Token.T_EXPR_NOT, null));            }            else if (ident.toString().equals("and")) {              tokens.add(new Token(Token.T_EXPR_AND, null));            }            else if (ident.toString().equals("or")) {              tokens.add(new Token(Token.T_EXPR_OR, null));            }            else if (ident.toString().equals("defined")) {              tokens.add(new Token(Token.T_EXPR_DEF, null));            }            else {              tokens.add(new Token(Token.T_IDENT, ident.toString()));            }            buf.insert(0, ch);            state = 0;            break;          }        case 4:          tokens.add(new Token(Token.T_SEP, null));          buf.insert(0, ch);          state = 0;          break;        case 5:          if (Scanner.isQuote(ch)) {            state = 6;            break;          }          else if (Scanner.isBackslash(ch)) {            state = 7;            break;          }          else {            string.append(ch);            state = 5;            break;          }        case 6:          tokens.add(new Token(Token.T_STRING, string.toString()));          buf.insert(0, ch);          state = 0;          break;        case 7:          if (Scanner.isQuote(ch) || Scanner.isBackslash(ch)) {            string.append(ch);            state = 5;            break;          }          else {            throw (new SijappException("Syntax error"));          }        case 8:          buf.insert(0, ch);          state = 0;          break;        case 9:          tokens.add(new Token(Token.T_EXPR_PRS_LEFT, null));          buf.insert(0, ch);          state = 0;          break;        case 10:          tokens.add(new Token(Token.T_EXPR_PRS_RIGHT, null));          buf.insert(0, ch);          state = 0;          break;        case 11:          tokens.add(new Token(Token.T_EXPR_EQ, null));          buf.insert(0, ch);          state = 0;          break;        case 12:          if (Scanner.isEqualsSign(ch)) {            state = 13;            break;          }          else {            tokens.add(new Token(Token.T_EXPR_NOT, null));            break;          }        case 13:          tokens.add(new Token(Token.T_EXPR_NEQ, null));          buf.insert(0, ch);          state = 0;          break;        case 14:          tokens.add(new Token(Token.T_EXPR_AND, null));          buf.insert(0, ch);          state = 0;          break;        case 15:          tokens.add(new Token(Token.T_EXPR_OR, null));          buf.insert(0, ch);          state = 0;          break;      }    } while (!exit && (buf.length() > 0));    // Return tokens as array    Token[] ret = new Token[tokens.size()];    tokens.copyInto(ret);    return (ret);  }  /****************************************************************************/  /****************************************************************************/  /****************************************************************************/  public static class Token {    // Tokens    public static final int T_MAGIC_BEGIN       = 1;    public static final int T_MAGIC_END         = 2;    public static final int T_IDENT             = 3;    public static final int T_STRING            = 4;    public static final int T_BOOL              = 5;    public static final int T_SEP               = 6;    public static final int T_CMD1_COND         = 7;    public static final int T_CMD1_ECHO         = 8;    public static final int T_CMD1_ENV          = 9;    public static final int T_CMD1_EXIT         = 10;    public static final int T_CMD2_IF           = 11;    public static final int T_CMD2_ELSEIF       = 12;    public static final int T_CMD2_ELSE         = 13;    public static final int T_CMD2_END          = 14;    public static final int T_CMD2_DEF          = 15;    public static final int T_CMD2_UNDEF        = 16;    public static final int T_EXPR_PRS_LEFT     = 17;    public static final int T_EXPR_PRS_RIGHT    = 18;    public static final int T_EXPR_EQ           = 19;    public static final int T_EXPR_NEQ          = 20;    public static final int T_EXPR_NOT          = 21;    public static final int T_EXPR_AND          = 22;    public static final int T_EXPR_OR           = 23;    public static final int T_EXPR_DEF          = 24;    /**************************************************************************/    // Token type    private int type;    // Token value    private Object value;    // Constructor    public Token(int type, Object value) {      this.type = type;      this.value = value;    }    // Returns the token type    public int getType() {      return (this.type);    }    // Returns the token value    public Object getValue() {      return (this.value);    }  }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产网站在线观看| 亚洲男女毛片无遮挡| 麻豆成人综合网| 欧美va在线播放| 成人性色生活片| 亚洲欧洲精品一区二区三区 | 91美女蜜桃在线| 51午夜精品国产| 国内外成人在线视频| 亚洲自拍偷拍图区| 国产拍欧美日韩视频二区| 欧美丝袜第三区| 韩国成人精品a∨在线观看| 一区二区三区中文字幕电影 | 欧美日韩第一区日日骚| 亚洲精品老司机| 欧美一区二区三区在线视频| 秋霞电影网一区二区| 国产亚洲视频系列| 色av一区二区| 蜜桃久久精品一区二区| 国产精品久线观看视频| 欧美日韩一区不卡| 国产成人在线视频网站| 亚洲精选一二三| 精品美女被调教视频大全网站| 国产91精品一区二区麻豆网站| 亚洲国产欧美在线| 久久蜜桃av一区精品变态类天堂| 91美女片黄在线| 国产精品一区免费在线观看| 国产精品成人一区二区艾草| 91久久一区二区| 国产精品系列在线观看| 亚洲国产精品精华液网站| 久久久夜色精品亚洲| 欧美精品丝袜中出| 91美女片黄在线观看| 国产精品88av| 国产精品一二二区| 免费看欧美女人艹b| 亚洲成人一区在线| 亚洲精品日韩综合观看成人91| 久久综合九色综合97婷婷| 717成人午夜免费福利电影| 色婷婷久久久亚洲一区二区三区| 韩国一区二区在线观看| 精品一区二区三区视频在线观看| 亚洲香肠在线观看| 一区二区三区 在线观看视频| 国产精品高清亚洲| 亚洲同性gay激情无套| 国产欧美久久久精品影院| 欧美视频一区二区三区四区| 国内久久精品视频| 黄色日韩网站视频| 韩国一区二区三区| 国产精品自拍三区| 99精品视频一区二区三区| 91亚洲精品久久久蜜桃| 色婷婷精品大在线视频| 欧美乱妇一区二区三区不卡视频| 欧美色爱综合网| 精品少妇一区二区三区免费观看| 精品国产三级电影在线观看| 久久先锋资源网| 18涩涩午夜精品.www| 午夜伊人狠狠久久| 国产精品456| 色呦呦日韩精品| 欧美一区二区在线视频| 国产欧美日韩三级| 亚洲午夜av在线| 狠狠色狠狠色综合系列| 久久电影国产免费久久电影| 成人激情免费电影网址| 91麻豆精品国产| 国产免费久久精品| 日韩精品福利网| 高清不卡在线观看| 日韩精品一区二区三区在线观看| 亚洲国产成人在线| 日韩和欧美的一区| 色94色欧美sute亚洲线路二 | 久久影音资源网| 亚洲国产视频网站| 91丝袜美女网| 中文字幕二三区不卡| 极品美女销魂一区二区三区| 欧美综合欧美视频| 久久精子c满五个校花| 欧美bbbbb| 日韩视频中午一区| 麻豆久久久久久久| 欧美日韩美少妇| 久久久久久久久久久久久夜| 亚洲夂夂婷婷色拍ww47| 91福利在线导航| 亚洲精品成a人| 在线免费av一区| 亚洲无人区一区| 欧美午夜精品理论片a级按摩| 亚洲最新在线观看| 欧美性欧美巨大黑白大战| 亚洲va国产天堂va久久en| 欧美日韩一级黄| 蜜桃视频在线一区| 国产欧美一区二区精品秋霞影院 | 亚洲精品在线观看视频| 国产不卡视频一区二区三区| 日韩精品中文字幕在线不卡尤物| 美日韩一区二区三区| 国产清纯白嫩初高生在线观看91| 国产精品伊人色| 一区二区三区四区中文字幕| 欧美视频自拍偷拍| 久久se这里有精品| 中文一区在线播放| 欧美一区二视频| 99久久婷婷国产综合精品电影| 亚洲精品国产第一综合99久久| 欧亚一区二区三区| 国产乱国产乱300精品| 亚洲免费av网站| 久久蜜桃av一区二区天堂| 91麻豆福利精品推荐| 国产综合久久久久久鬼色 | 日韩高清不卡一区二区| 国产精品传媒入口麻豆| 制服丝袜日韩国产| 97精品电影院| 国产乱人伦偷精品视频免下载| 亚洲精品少妇30p| 国产精品狼人久久影院观看方式| 日韩欧美自拍偷拍| 欧美日韩在线直播| 不卡大黄网站免费看| 综合中文字幕亚洲| 精品理论电影在线| 欧美人妇做爰xxxⅹ性高电影| 国产精品一区二区久激情瑜伽| 免费观看日韩av| 午夜久久久久久久久| 亚瑟在线精品视频| 亚洲最新视频在线观看| 亚洲三级免费观看| 国产精品久久久久久户外露出 | 国产精品毛片无遮挡高清| 精品三级av在线| 精品国产一区久久| 精品日韩成人av| 久久精品一区四区| 国产精品美女久久福利网站| 成人免费在线视频| 亚洲免费观看高清完整版在线观看熊 | 香蕉成人啪国产精品视频综合网| 一区二区久久久| 亚洲永久精品大片| 日韩精品色哟哟| 国产精品一区三区| 不卡一区二区中文字幕| 欧美三级电影网站| 久久欧美中文字幕| 成人免费一区二区三区视频| 日韩码欧中文字| 蓝色福利精品导航| 97久久精品人人爽人人爽蜜臀| 欧美亚洲国产一卡| 久久影音资源网| 亚洲一区二区视频在线| 青青草成人在线观看| 国产一区二区伦理片| 精品视频在线看| 国产精品女同一区二区三区| 日精品一区二区| 日本高清不卡视频| 2欧美一区二区三区在线观看视频| 17c精品麻豆一区二区免费| 麻豆中文一区二区| 91视频com| 国产三级精品在线| 国内成人精品2018免费看| 欧美日韩精品免费观看视频| 在线观看欧美日本| xf在线a精品一区二区视频网站| 亚洲免费观看高清完整版在线观看熊| 麻豆一区二区三区| 欧洲精品一区二区| 亚洲人亚洲人成电影网站色| 狠狠色丁香久久婷婷综| 91精品国产综合久久福利软件| 亚洲精品一二三区| av亚洲精华国产精华精华| 久久人人爽人人爽| 国产一区二区网址| 欧美v日韩v国产v| 精彩视频一区二区| 精品国产百合女同互慰| 日韩福利视频导航| 91精品国产综合久久国产大片|