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

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

?? scriptscanner.java

?? ScriptScanner is a tool for escaping all the commentary in the sql script.
?? JAVA
字號:
/**
 *   @(#) ScriptScanner.java
 */
package edu.hust.tool;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.StringTokenizer;
import java.util.Iterator;

/**
 * ScriptScanner is a tool for escaping all the commentary in the sql script.
 * Three commentaries are supported:
 * <p>
 *  Block comment: codes in  /* and */
/* Line comment:   -- the remain of the linde  
 *                  // the remain of the line
 * </p>
 *  
 * <p>
 *  Usage:
 * <code>
 *    ScriptScanner scanner = new ScriptScanner( script ); 
 *                           // new ScriptScanner(
 *                           //            new File( scriptfile );
 *    for( Iterator iter = scanner.hasNext(); iter.hasNext(); ) {
 *         System.out.println( iter.next());
 *    }
 * </code>
 * </p> 
 */
/*
 *   @author quickpoint At HUST
 *   @version 1.0 2007-03-26  
 */
public class ScriptScanner {
	private BufferedReader reader = null;       // the reader( input stream )
	private StringBuffer buf;                   // script buffer           
	private Collection<String> statements       // sttements
	                  = new ArrayList<String>();
	private int totalStatements = 0;            // total statements count
	private boolean skipRemark = true;          // skip remark flag
	private boolean replaceQuote = true;        // replace quote flag
	
	// Constants used in the scanning
	private static final String DELIMSTATEMENT = ";"; 
	private static final char ENDLINE = '\n';
	private static final char ENDSTATEMENT = ';';
	private static final char RSPLASH = '/';
	private static final char ONE_QUOTE = '\'';
	private static final char DOUBLE_ONE_QUOTE = '"';
	private static final char STAR = '*';
	private static final char LINESIGN = '-';
	
	/**
	 *  Iterator on the statements
	 *  @return iterator on the result of statements
	 */
	public Iterator iterator() {
		return Collections.unmodifiableCollection( 
		                                     statements ).iterator();
	}
	
	/**
	 *  Total statements count 
	 *  @return total statements count
	 */
	public int totalStatements() {
		return totalStatements;
	}
	//===============================================================
	/**
	 *  Construct a scanner by the script string
	 */
	public ScriptScanner( String script ) {
		this( new StringReader( script ));
	}
	
	/**
	 *  Construct a scanner by the file
	 */  
	public ScriptScanner( File file ) {
		try {
			reader = new BufferedReader( 
			              new FileReader( file ));
			parse();
		} catch ( FileNotFoundException ex ) {
			ex.printStackTrace();
		} catch ( IOException ex ) {
			ex.printStackTrace();
		}
	}
	
	/**
	 *  Construct a scanner by the reader
	 */
	public ScriptScanner( Reader reader ) {
		try {
		    this.reader = (reader instanceof BufferedReader )?
		                      (BufferedReader)reader :
		                       new BufferedReader( reader );  
			parse();
		} catch ( IOException ex ) {
			ex.printStackTrace();
		}
	}
	
	/**
	 *   Skip remark during scanning?
	 *   @param skipRemark skip remark flag, 
	 *      if set as true, the mark will be skipped,
	 *      else the mark will not be skipped.
	 *      The default is true   
	 */
	public void skipRemark( boolean skipRemark) {
		this.skipRemark = skipRemark;
	}
	
	/**
	 *  Replace quote druing scanning?
	 *  @param replaceQuote replace quote flag.
	 *      if set as true, the quote " will be replaced as ',
	 *      else the quote will not be replaed.
	 *      The default is true
	 */
	public void replaceQuote( boolean replaceQuote ) {
		this.replaceQuote = replaceQuote;
	}
	
	// read one char
	private int read() throws IOException {
		return reader.read();
	}
	
	// do the parse	
	private void parse() throws IOException {
		int ch = read();
		buf = new StringBuffer();
		while ( true ) {
			if ( ch < 0 ) {
			    break;     // end of the file
		    }
			switch ( ch ) {
				case ONE_QUOTE:  // fall thru
				case DOUBLE_ONE_QUOTE: {
					int last = ch;
					if ( replaceQuote ) {
					  buf.append( ( char ) ONE_QUOTE );
					} else {
				      buf.append( ( char ) ch );
					}
					while ( true ) {  // read till see the last
						ch = read();
						if ( ch < 0 ) {
							break;
						}
						if ( replaceQuote && ch == last ) {
						   buf.append( ONE_QUOTE);
						} else {
						   buf.append( (char) ch );
	                    }
						if ( ch == last ) {
							break;
						}
					}
					ch = read();
					break;
				}
				
				case RSPLASH: {
					int last = ch;
					ch = read();
					if ( ch < 0 ) {
						break;
					}
					if ( ch == STAR ) {
						// block remaark
					    if ( !skipRemark ) {
						   buf.append( ( char ) last );
						   buf.append( ( char ) ch );
					    }
					    while ( true ) {  // read till see the */
 					    	ch = read();
 					    	if ( ch < 0 ) {
 					    		break;
 					    	}
 					    	if ( !skipRemark ) {
 					    		buf.append( ( char ) ch );		
 					    	}
 					    	if ( ch == STAR ) {
 					    		ch = read();
 					    		if ( ch < 0 ) {
 					    			break;
 					    		}
 					    		if ( !skipRemark ) {
 					    			buf.append( ( char ) ch );
 					    		}
 					    		if ( ch == RSPLASH ) {
 					    			break;
 					    		}
 					    	}
					    }
					    ch = read();
					} else if ( ch == RSPLASH ){
						// single line remark
						if ( !skipRemark ) {
							buf.append( ( char ) last );
							buf.append( ( char ) ch );
						}
						while ( true ) {  // read till see the \r\n
							ch = read();
							if ( ch < 0 ) {
								break;
							}
							if ( !skipRemark ) {
								buf.append( ( char ) ch );
							}
							if ( ch == ENDLINE ) {
								break;
							}
						}
						ch = read();
					} else {
						buf.append( ( char ) last );
					}
					break;
				}
				
				case LINESIGN : {
					int last = ch;
					ch = read();
					if ( ch < 0 ) {
						break;
					}
					if ( ch == LINESIGN ) {  
					     // single line remark 
						if ( !skipRemark ) {
							buf.append( ( char ) last );
							buf.append( ( char ) ch );
						}
						while ( true ) { // read till see the \r\n
						   ch = read();
						   if ( ch < 0 ) {
						   		break;
						   }
						   if ( !skipRemark ) {
						   	 buf.append( ( char ) ch );
						   }	
						   if ( ch == ENDLINE ) {
						   		break;
						   }
						}
						ch = read();
					} else {
						buf.append( (char) ch );
					}
					break;
				}
				default: {
					buf.append( ( char ) ch );
					ch = read();
					break;
				}	
			}
		} 
		// orange the results
		StringTokenizer st = new StringTokenizer( buf.toString(), DELIMSTATEMENT );
		while( st.hasMoreTokens()) {
			String statement = st.nextToken().trim();
			if ( statement.length() == 0) {  // trip out the empty string
				continue;
			}
			totalStatements++;
			statements.add( statement + ENDSTATEMENT);
		}
	}	
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线影院| 极品销魂美女一区二区三区| 国产色产综合色产在线视频| 欧美一区二视频| 日韩精品最新网址| 精品国产一二三区| 久久久久国产精品厨房| 国产女主播视频一区二区| 国产精品三级av| 亚洲丝袜美腿综合| 午夜精品成人在线视频| 夜夜精品浪潮av一区二区三区| 亚洲欧美区自拍先锋| 亚洲福利国产精品| 蜜臀av性久久久久av蜜臀妖精| 久久激五月天综合精品| 国产精品123区| 色综合久久久久久久久| 欧美日韩视频一区二区| 日韩欧美国产综合在线一区二区三区| 制服丝袜激情欧洲亚洲| 久久久午夜电影| 亚洲欧美日韩国产成人精品影院| 五月婷婷综合激情| 狠狠色综合播放一区二区| 成人午夜伦理影院| 欧美日韩免费一区二区三区视频| 精品少妇一区二区三区视频免付费| 久久精品一区二区三区不卡牛牛| 国产精品传媒入口麻豆| 视频一区二区欧美| 粉嫩一区二区三区在线看| 欧美午夜寂寞影院| 久久噜噜亚洲综合| 亚洲一二三专区| 国产美女视频一区| 欧美日韩久久久一区| 久久精品视频在线看| 一区二区三区在线免费播放| 国产主播一区二区| 欧洲视频一区二区| 欧美激情一区不卡| 日本亚洲一区二区| 91麻豆国产福利精品| 欧美成人a在线| 亚洲午夜久久久久久久久电影网 | 91亚洲精华国产精华精华液| 欧美一区二区三区免费观看视频| 欧美激情一区二区三区四区 | 久久综合久久久久88| 亚洲国产一区二区三区| 国产高清精品网站| 91精品欧美综合在线观看最新| 中文无字幕一区二区三区| 日本v片在线高清不卡在线观看| 色综合亚洲欧洲| 国产亚洲精品7777| 久久精工是国产品牌吗| 欧美一区二区三区在| 亚洲一区二区三区四区不卡| 成人sese在线| 国产欧美精品一区aⅴ影院| 捆绑调教一区二区三区| 欧美人牲a欧美精品| 亚洲男同1069视频| 成人激情av网| 中文字幕 久热精品 视频在线| 国产一区久久久| 欧美大尺度电影在线| 天天av天天翘天天综合网| 在线亚洲精品福利网址导航| 亚洲精品国产精品乱码不99| 91香蕉视频污在线| 亚洲日本免费电影| 91福利社在线观看| 亚洲国产一二三| 欧美日韩精品综合在线| 日本亚洲最大的色成网站www| 5858s免费视频成人| 日本视频在线一区| 欧美变态口味重另类| 久久99精品久久久| 国产女同性恋一区二区| 成人精品视频一区二区三区| 中文字幕不卡的av| 99综合影院在线| 一区二区三区美女| 欧美久久久久久久久久| 青青草精品视频| 久久久蜜臀国产一区二区| 国产91精品入口| 亚洲人精品午夜| 欧美美女直播网站| 免费观看久久久4p| 欧美国产日韩精品免费观看| 色综合久久久久综合体桃花网| 亚洲最大的成人av| 欧美一个色资源| 国产成人啪午夜精品网站男同| 国产精品美女视频| 欧美色网一区二区| 激情六月婷婷综合| 亚洲色图欧洲色图婷婷| 欧美日韩精品一区二区三区| 激情六月婷婷久久| 亚洲制服丝袜一区| 精品处破学生在线二十三| 成人三级伦理片| 三级影片在线观看欧美日韩一区二区| 欧美电影免费观看高清完整版| 国产不卡视频在线观看| 亚洲国产综合色| 久久久精品2019中文字幕之3| 色88888久久久久久影院野外| 久久精品国产色蜜蜜麻豆| 中文字幕中文在线不卡住| 91精品在线观看入口| 菠萝蜜视频在线观看一区| 天堂成人免费av电影一区| 欧美激情在线一区二区| 欧美精品日韩一本| 97se狠狠狠综合亚洲狠狠| 捆绑调教一区二区三区| 一区二区三区91| 欧美经典一区二区| 日韩无一区二区| 在线观看亚洲成人| 懂色av中文一区二区三区| 麻豆精品视频在线| 一区二区三区中文免费| 国产精品理论在线观看| 精品国产91乱码一区二区三区| 欧美色图片你懂的| 91网站在线观看视频| 国产一区二区主播在线| 麻豆91在线看| 午夜av一区二区三区| 一区二区三区中文字幕在线观看| 中文字幕成人av| 日本一区二区高清| 久久久久青草大香线综合精品| 欧美一区二区三区四区高清| 一本色道亚洲精品aⅴ| 成人动漫一区二区三区| 成人美女在线视频| 成人动漫视频在线| 成人黄色av电影| 不卡av在线网| 91丝袜美女网| 日本韩国欧美在线| 欧美性生活久久| 欧美午夜一区二区三区免费大片| 99riav久久精品riav| eeuss国产一区二区三区| 国产99久久久国产精品潘金网站| 狠狠色狠狠色合久久伊人| 紧缚奴在线一区二区三区| 狠狠色丁香婷婷综合久久片| 国模一区二区三区白浆 | 国产亚洲成av人在线观看导航| 精品久久久久久久久久久久久久久久久| 欧美精品777| 日韩一区二区三区在线观看| 精品裸体舞一区二区三区| 精品成人一区二区三区| 国产欧美视频在线观看| 一色屋精品亚洲香蕉网站| 亚洲欧美一区二区三区极速播放 | 欧美日韩国产高清一区| 欧美精品在线一区二区三区| 欧美一区二区三区公司| 久久久精品人体av艺术| ...av二区三区久久精品| 伊人一区二区三区| 日韩1区2区日韩1区2区| 国模冰冰炮一区二区| 成人午夜在线视频| 色综合久久中文字幕综合网| 欧美一卡2卡三卡4卡5免费| 久久伊99综合婷婷久久伊| 国产精品看片你懂得| 亚洲高清三级视频| 国产精品一区二区三区乱码| 在线精品亚洲一区二区不卡| 欧美私人免费视频| 久久久精品tv| 香港成人在线视频| 国产成人免费在线视频| 精品视频1区2区| 久久久久国色av免费看影院| 一区二区三区免费| 国产精品自拍av| 欧美少妇xxx| 国产精品麻豆99久久久久久| 亚洲mv大片欧洲mv大片精品| 国产乱对白刺激视频不卡| 欧美亚洲一区二区在线| 国产欧美精品一区aⅴ影院| 丝袜美腿成人在线| 成人av在线一区二区三区|