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

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

?? scanner.java

?? 類似QQ的功能
?? JAVA
字號:
/*******************************************************************************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
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕中文字幕一区二区| 国产精品久久久久影院亚瑟| 99在线精品一区二区三区| 婷婷国产v国产偷v亚洲高清| 久久精品亚洲国产奇米99| 欧美日韩一级黄| 在线免费观看日韩欧美| 成人午夜av影视| 国产福利不卡视频| 国产在线精品国自产拍免费| 日本不卡123| 久久爱www久久做| 狠狠色丁香久久婷婷综合_中| 天天综合天天综合色| 一区二区高清视频在线观看| 成人欧美一区二区三区在线播放| 精品99久久久久久| 久久亚洲综合色| 欧美国产成人精品| 国产精品久久久久影院| 中文字幕亚洲综合久久菠萝蜜| 国产精品免费观看视频| 国产精品美女一区二区三区| 国产丝袜美腿一区二区三区| 久久久久亚洲综合| 国产精品国产自产拍高清av王其| 亚洲日本在线视频观看| 亚洲国产综合91精品麻豆| 婷婷国产在线综合| 国产美女在线精品| jlzzjlzz亚洲女人18| 在线视频亚洲一区| 日韩欧美一级特黄在线播放| 国产午夜精品福利| 一级特黄大欧美久久久| 极品少妇一区二区| 一本色道久久综合精品竹菊| 欧美美女喷水视频| 国产清纯白嫩初高生在线观看91| 亚洲男女毛片无遮挡| 九九国产精品视频| 精品国产一区久久| 亚洲一区影音先锋| 国产91丝袜在线播放九色| 欧洲激情一区二区| 国产日韩av一区二区| 亚洲第一综合色| av电影在线观看完整版一区二区| 69成人精品免费视频| 亚洲欧美日本韩国| 国产91丝袜在线18| 欧美成人a在线| 亚洲成人av在线电影| 成人免费看黄yyy456| 日韩欧美国产一区二区在线播放| 亚洲人一二三区| 成人污污视频在线观看| 精品国产乱码久久久久久图片| 亚洲精品国产视频| 99精品久久免费看蜜臀剧情介绍| 精品国产一区二区国模嫣然| 午夜精品久久久久久久99樱桃| 色综合久久综合网| 一区二区三区免费观看| 色偷偷成人一区二区三区91| 国产精品乱码一区二区三区软件| 韩国精品在线观看| 国产日韩欧美精品一区| 国产99精品视频| 亚洲欧美中日韩| 99精品偷自拍| 一区二区三区四区国产精品| 在线视频一区二区免费| 日本视频在线一区| 久久久亚洲精品石原莉奈| 久久成人综合网| 久久久蜜臀国产一区二区| 成人av手机在线观看| 亚洲色图丝袜美腿| 717成人午夜免费福利电影| 精品中文字幕一区二区小辣椒| 日韩欧美高清在线| 粉嫩aⅴ一区二区三区四区五区| 日本一区二区免费在线| 色综合天天性综合| 奇米影视一区二区三区| 26uuu色噜噜精品一区二区| 99精品欧美一区二区三区小说| 亚洲电影一区二区| 久久人人超碰精品| 色婷婷av一区二区三区gif| 久久精品99国产精品日本| 国产精品久久久久一区二区三区| 欧美一区二区三区男人的天堂| 国产精品资源网站| 性做久久久久久免费观看| 久久久一区二区三区捆绑**| 一本到不卡精品视频在线观看| 秋霞午夜av一区二区三区| 中文字幕制服丝袜一区二区三区 | 精品国产区一区| 色婷婷激情一区二区三区| 国产一区二区网址| 免费在线观看精品| 偷拍一区二区三区四区| 亚洲精品乱码久久久久| 自拍偷自拍亚洲精品播放| 欧美一区二区美女| av一区二区三区四区| 日韩精品免费视频人成| 一区二区三区四区中文字幕| 欧美一级日韩一级| 在线观看不卡一区| av不卡免费电影| 99精品视频在线免费观看| 青青草原综合久久大伊人精品优势| 最新成人av在线| 久久久久免费观看| 欧美精品一区二区三区很污很色的 | 欧美区在线观看| 91亚洲精品久久久蜜桃网站| 水蜜桃久久夜色精品一区的特点| 中文字幕五月欧美| 国产精品系列在线| 国产色产综合产在线视频| 久久这里只有精品6| 26uuuu精品一区二区| 国产农村妇女毛片精品久久麻豆 | 日本乱码高清不卡字幕| 91性感美女视频| 91久久线看在观草草青青| 91在线视频免费观看| 91老师片黄在线观看| 一本到一区二区三区| 欧美日韩亚州综合| 日韩欧美精品在线| 久久久精品国产免费观看同学| 久久久精品综合| 亚洲第一电影网| 蜜臀av一区二区在线免费观看| 毛片一区二区三区| 不卡视频在线观看| 欧美大肚乱孕交hd孕妇| 国产精品视频第一区| 亚洲国产精品影院| 一区二区三区**美女毛片| 国产美女视频一区| 在线观看日韩一区| 久久人人爽人人爽| 午夜私人影院久久久久| 久久精品国产99久久6| 99精品久久久久久| 日韩一区二区电影在线| 亚洲欧洲日韩一区二区三区| 一区二区理论电影在线观看| 秋霞电影一区二区| 91一区二区三区在线观看| 在线成人午夜影院| 亚洲综合激情另类小说区| 狠狠色丁香婷综合久久| 欧美色中文字幕| 国产精品灌醉下药二区| 91精品国产麻豆国产自产在线| 国产亚洲成aⅴ人片在线观看 | 视频一区视频二区中文字幕| 国产凹凸在线观看一区二区| 91行情网站电视在线观看高清版| 欧美美女网站色| 亚洲国产日日夜夜| 99久久国产免费看| 国产丝袜美腿一区二区三区| 日韩 欧美一区二区三区| 色婷婷久久综合| 精品剧情在线观看| 午夜成人免费电影| 欧美精品一级二级| 亚洲欧美日韩精品久久久久| 成人听书哪个软件好| 中文乱码免费一区二区| 成人精品小蝌蚪| 久久久久久久久久久久久久久99| 美腿丝袜亚洲综合| 日韩免费看的电影| 国产在线不卡一区| 国产精品免费久久久久| 成人黄色小视频| 亚洲黄色免费电影| 欧洲精品一区二区| 午夜亚洲国产au精品一区二区| 在线视频你懂得一区二区三区| 一区二区免费看| 精品欧美乱码久久久久久| 精品午夜久久福利影院| 精品国产一区二区亚洲人成毛片| 日本欧美在线看| 国产欧美综合在线观看第十页| 懂色av中文一区二区三区| 一区二区欧美精品| 91精品久久久久久蜜臀| 国产成人精品亚洲777人妖|