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

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

?? master.java

?? linux下建立JAVA虛擬機(jī)的源碼KAFFE
?? JAVA
字號:
// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)package org.xbill.DNS;import java.io.*;import java.util.*;/** * A DNS master file parser.  This incrementally parses the file, returning * one record at a time.  When directives are seen, they are added to the * state and used when parsing future records. * * @author Brian Wellington */public class Master {private Name origin;private File file;private Record last = null;private long defaultTTL;private Master included = null;private Tokenizer st;private int currentType;private int currentDClass;private long currentTTL;private boolean needSOATTL;private Generator generator;private List generators;private boolean noExpandGenerate;Master(File file, Name origin, long initialTTL) throws IOException {	if (origin != null && !origin.isAbsolute()) {		throw new RelativeNameException(origin);	}	this.file = file;	st = new Tokenizer(file);	this.origin = origin;	defaultTTL = initialTTL;}/** * Initializes the master file reader and opens the specified master file. * @param filename The master file. * @param origin The initial origin to append to relative names. * @param ttl The initial default TTL. * @throws IOException The master file could not be opened. */publicMaster(String filename, Name origin, long ttl) throws IOException {	this(new File(filename), origin, ttl);}/** * Initializes the master file reader and opens the specified master file. * @param filename The master file. * @param origin The initial origin to append to relative names. * @throws IOException The master file could not be opened. */publicMaster(String filename, Name origin) throws IOException {	this(new File(filename), origin, -1);}/** * Initializes the master file reader and opens the specified master file. * @param filename The master file. * @throws IOException The master file could not be opened. */publicMaster(String filename) throws IOException {	this(new File(filename), null, -1);}/** * Initializes the master file reader. * @param in The input stream containing a master file. * @param origin The initial origin to append to relative names. * @param ttl The initial default TTL. */publicMaster(InputStream in, Name origin, long ttl) {	if (origin != null && !origin.isAbsolute()) {		throw new RelativeNameException(origin);	}	TTL.check(ttl);	st = new Tokenizer(in);	this.origin = origin;	defaultTTL = ttl;}/** * Initializes the master file reader. * @param in The input stream containing a master file. * @param origin The initial origin to append to relative names. */publicMaster(InputStream in, Name origin) {	this(in, origin, -1);}/** * Initializes the master file reader. * @param in The input stream containing a master file. */publicMaster(InputStream in) {	this(in, null, -1);}private NameparseName(String s, Name origin) throws TextParseException {	try {		return Name.fromString(s, origin);	}	catch (TextParseException e) {		throw st.exception(e.getMessage());	}}private voidparseTTLClassAndType() throws IOException {	String s;	boolean seen_class = false;	// This is a bit messy, since any of the following are legal:	//   class ttl type	//   ttl class type	//   class type	//   ttl type	//   type	seen_class = false;	s = st.getString();	if ((currentDClass = DClass.value(s)) >= 0) {		s = st.getString();		seen_class = true;	}	currentTTL = -1;	try {		currentTTL = TTL.parseTTL(s);		s = st.getString();	}	catch (NumberFormatException e) {		if (defaultTTL >= 0)			currentTTL = defaultTTL;		else if (last != null)			currentTTL = last.getTTL();	}	if (!seen_class) {		if ((currentDClass = DClass.value(s)) >= 0) {			s = st.getString();		} else {			currentDClass = DClass.IN;		}	}	if ((currentType = Type.value(s)) < 0)		throw st.exception("Invalid type '" + s + "'");	// BIND allows a missing TTL for the initial SOA record, and uses	// the SOA minimum value.  If the SOA is not the first record,	// this is an error.	if (currentTTL < 0) {		if (currentType != Type.SOA)			throw st.exception("missing TTL");		needSOATTL = true;		currentTTL = 0;	}}private longparseUInt32(String s) {	if (!Character.isDigit(s.charAt(0)))		return -1;	try {		long l = Long.parseLong(s);		if (l < 0 || l > 0xFFFFFFFFL)			return -1;		return l;	}	catch (NumberFormatException e) {		return -1;	}}private voidstartGenerate() throws IOException {	String s;	int n;	// The first field is of the form start-end[/step]	// Regexes would be useful here.	s = st.getIdentifier();	n = s.indexOf("-");	if (n < 0)		throw st.exception("Invalid $GENERATE range specifier: " + s);	String startstr = s.substring(0, n);	String endstr = s.substring(n + 1);	String stepstr = null;	n = endstr.indexOf("/");	if (n >= 0) {		stepstr = endstr.substring(n + 1);		endstr = endstr.substring(0, n);	}	long start = parseUInt32(startstr);	long end = parseUInt32(endstr);	long step;	if (stepstr != null)		step = parseUInt32(stepstr);	else		step = 1;	if (start < 0 || end < 0 || start > end || step <= 0)		throw st.exception("Invalid $GENERATE range specifier: " + s);	// The next field is the name specification.	String nameSpec = st.getIdentifier();	// Then the ttl/class/type, in the same form as a normal record.	// Only some types are supported.	parseTTLClassAndType();	if (!Generator.supportedType(currentType))		throw st.exception("$GENERATE does not support " +				   Type.string(currentType) + " records");	// Next comes the rdata specification.	String rdataSpec = st.getIdentifier();	// That should be the end.  However, we don't want to move past the	// line yet, so put back the EOL after reading it.	st.getEOL();	st.unget();	generator = new Generator(start, end, step, nameSpec,				  currentType, currentDClass, currentTTL,				  rdataSpec, origin);	if (generators == null)		generators = new ArrayList(1);	generators.add(generator);}private voidendGenerate() throws IOException {	// Read the EOL that we put back before.	st.getEOL();	generator = null;}private RecordnextGenerated() throws IOException {	try {		return generator.nextRecord();	}	catch (Tokenizer.TokenizerException e) {		throw st.exception("Parsing $GENERATE: " + e.getBaseMessage());	}	catch (TextParseException e) {		throw st.exception("Parsing $GENERATE: " + e.getMessage());	}}/** * Returns the next record in the master file.  This will process any * directives before the next record. * @return The next record. * @throws IOException The master file could not be read, or was syntactically * invalid. */public Record_nextRecord() throws IOException {	Tokenizer.Token token;	String s;	if (included != null) {		Record rec = included.nextRecord();		if (rec != null)			return rec;		included = null;	}	if (generator != null) {		Record rec = nextGenerated();		if (rec != null)			return rec;		endGenerate();	}	while (true) {		Name name;		token = st.get(true, false);		if (token.type == Tokenizer.WHITESPACE) {			Tokenizer.Token next = st.get();			if (token.type == Tokenizer.EOL)				continue;			else if (token.type == Tokenizer.EOF)				return null;			else				st.unget();			if (last == null)				throw st.exception("no owner");			name = last.getName();		}		else if (token.type == Tokenizer.EOL)			continue;		else if (token.type == Tokenizer.EOF)			return null;		else if (((String) token.value).charAt(0) == '$') {			s = token.value;			if (s.equalsIgnoreCase("$ORIGIN")) {				origin = st.getName(Name.root);				st.getEOL();				continue;			} else if (s.equalsIgnoreCase("$TTL")) {				defaultTTL = st.getTTL();				st.getEOL();				continue;			} else  if (s.equalsIgnoreCase("$INCLUDE")) {				String filename = st.getString();				String parent = file.getParent();				File newfile = new File(parent, filename);				Name incorigin = origin;				token = st.get();				if (token.isString()) {					incorigin = parseName(token.value,							      Name.root);					st.getEOL();				}				included = new Master(newfile, incorigin,						      defaultTTL);				/*				 * If we continued, we wouldn't be looking in				 * the new file.  Recursing works better.				 */				return nextRecord();			} else  if (s.equalsIgnoreCase("$GENERATE")) {				if (generator != null)					throw new IllegalStateException						("cannot nest $GENERATE");				startGenerate();				if (noExpandGenerate) {					endGenerate();					continue;				}				return nextGenerated();			} else {				throw st.exception("Invalid directive: " + s);			}		} else {			s = token.value;			name = parseName(s, origin);			if (last != null && name.equals(last.getName())) {				name = last.getName();			}		}		parseTTLClassAndType();		last = Record.fromString(name, currentType, currentDClass,					 currentTTL, st, origin);		if (needSOATTL) {			long ttl = ((SOARecord)last).getMinimum();			last.setTTL(ttl);			defaultTTL = ttl;			needSOATTL = false;		}		return last;	}}/** * Returns the next record in the master file.  This will process any * directives before the next record. * @return The next record. * @throws IOException The master file could not be read, or was syntactically * invalid. */public RecordnextRecord() throws IOException {	Record rec = null;	try {		rec = _nextRecord();	}	finally {		if (rec == null) {			st.close();		}	}	return rec;}/** * Specifies whether $GENERATE statements should be expanded.  Whether * expanded or not, the specifications for generated records are available * by calling {@link #generators}.  This must be called before a $GENERATE * statement is seen during iteration to have an effect. */public voidexpandGenerate(boolean wantExpand) {	noExpandGenerate = !wantExpand;}/** * Returns an iterator over the generators specified in the master file; that * is, the parsed contents of $GENERATE statements. * @see Generator */public Iteratorgenerators() {	if (generators != null)		return Collections.unmodifiableList(generators).iterator();	else		return Collections.EMPTY_LIST.iterator();}protected voidfinalize() {	st.close();}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人精品亚洲人成在线| 久久99精品久久久久久动态图| www.日韩精品| 成人免费在线播放视频| 色综合咪咪久久| 亚洲一区视频在线| 91精品国产高清一区二区三区蜜臀| 天堂成人免费av电影一区| 欧美一区二区高清| 狠狠色综合播放一区二区| 欧美激情一区二区三区不卡| www.日韩大片| 午夜精品123| 久久精品一区二区| 欧美综合一区二区三区| 美女视频第一区二区三区免费观看网站| 欧美精品一区二区三区蜜臀| 成人午夜又粗又硬又大| 亚洲bt欧美bt精品777| 久久亚洲精华国产精华液| 92国产精品观看| 日韩电影在线看| 中文字幕亚洲区| 69堂成人精品免费视频| 成人污污视频在线观看| 视频在线在亚洲| 国产日韩欧美在线一区| 欧美日韩精品免费观看视频| 国产乱对白刺激视频不卡| 亚洲精品高清在线| 久久女同精品一区二区| 欧美探花视频资源| 福利一区在线观看| 免费人成网站在线观看欧美高清| 中文字幕不卡的av| 日韩一级二级三级精品视频| 成人动漫一区二区| 日韩制服丝袜av| 亚洲男女一区二区三区| 精品福利一二区| 精品视频一区二区三区免费| 国产成人在线影院| 日韩不卡免费视频| 亚洲最大成人综合| 国产精品久久看| 久久综合九色综合欧美亚洲| 欧美四级电影在线观看| 成人高清在线视频| 国产一区二区三区视频在线播放| 亚洲成人免费视| 18成人在线视频| 国产欧美日韩视频在线观看| 日韩欧美国产wwwww| 欧美日韩一区二区三区四区| 91女人视频在线观看| 国产mv日韩mv欧美| 国产精品1区2区| 狠狠色狠狠色综合日日91app| 午夜精品久久久久久不卡8050| 亚洲另类色综合网站| 成人欧美一区二区三区1314 | 亚洲精品成人悠悠色影视| 国产亚洲一本大道中文在线| 欧美电视剧在线看免费| 91精品在线免费| 欧美精品777| 在线电影欧美成精品| 欧美午夜精品一区| 欧美三级中文字幕在线观看| 在线观看日韩av先锋影音电影院| 91在线视频官网| 成人aa视频在线观看| 成人污污视频在线观看| 成人h动漫精品一区二区| 成人综合在线观看| 成人av网站大全| 91在线精品一区二区| aaa亚洲精品一二三区| av电影天堂一区二区在线观看| aaa亚洲精品| 在线观看成人小视频| 欧美在线三级电影| 欧美色倩网站大全免费| 欧美精品18+| 精品国产乱码久久久久久图片| 久久综合狠狠综合久久激情| 欧美激情资源网| 亚洲色图清纯唯美| 亚洲成人免费在线| 美女视频黄频大全不卡视频在线播放 | 天天影视涩香欲综合网 | 亚洲在线视频网站| 亚洲成人综合视频| 秋霞午夜鲁丝一区二区老狼| 黄色精品一二区| av一区二区三区黑人| 色悠悠久久综合| 欧美一区二区三区四区高清| 久久久综合视频| 亚洲欧美日韩在线| 日本va欧美va精品发布| 国产一区二区久久| 99re亚洲国产精品| 欧美电影一区二区三区| 久久久综合九色合综国产精品| 亚洲欧美在线另类| 亚洲18色成人| 国产在线精品一区二区不卡了| 成人国产精品免费观看动漫 | 日韩视频一区二区三区| 欧美国产一区二区| 亚洲国产成人va在线观看天堂| 精品在线一区二区三区| av色综合久久天堂av综合| 欧美精品精品一区| 中文字幕精品一区二区精品绿巨人| 亚洲在线一区二区三区| 国模一区二区三区白浆| 色综合久久88色综合天天免费| 欧美一区二区三区喷汁尤物| 一区视频在线播放| 日韩中文字幕区一区有砖一区| 成人免费高清视频| 日韩欧美一区二区不卡| 一区在线播放视频| 国内不卡的二区三区中文字幕| 在线中文字幕一区| 国产日韩av一区| 日韩中文字幕91| 91久久线看在观草草青青| 精品国产凹凸成av人网站| 亚洲一区二区高清| 99久久国产综合精品麻豆| 欧美大片一区二区三区| 一区二区三区四区高清精品免费观看| 久久机这里只有精品| 99视频在线精品| 国产清纯白嫩初高生在线观看91 | 欧美日韩国产成人在线免费| 日韩一区在线免费观看| 国产一区在线精品| 在线综合+亚洲+欧美中文字幕| 一区二区三区在线观看国产| 国产福利91精品| 日韩欧美国产综合一区 | 国产精品主播直播| 日韩欧美一区二区在线视频| 亚洲愉拍自拍另类高清精品| 99视频超级精品| 中文字幕精品三区| 国产成人超碰人人澡人人澡| 欧美一级电影网站| 五月天激情小说综合| 在线精品视频一区二区| 亚洲人123区| 色婷婷综合久色| 自拍偷拍欧美激情| k8久久久一区二区三区| 国产精品久久一卡二卡| 国产**成人网毛片九色| 久久久亚洲午夜电影| 国产在线精品一区在线观看麻豆| 欧美va亚洲va| 精品一区二区av| 精品日韩在线一区| 国产一区二区三区av电影| 欧美精品一区二区三区蜜臀| 国产一区二区福利| 国产视频一区不卡| 精品亚洲国产成人av制服丝袜| 日韩美女视频一区二区在线观看| 久久精品国产99国产| 精品国产制服丝袜高跟| 国产美女精品一区二区三区| 久久精品夜色噜噜亚洲a∨| 国产成人精品一区二区三区网站观看| 国产日韩视频一区二区三区| caoporm超碰国产精品| 亚洲色欲色欲www在线观看| 日本高清成人免费播放| 亚洲一区精品在线| 欧美日韩激情在线| 日本美女一区二区三区视频| 精品福利视频一区二区三区| 国产精品亚洲视频| 中文字幕亚洲综合久久菠萝蜜| 欧美在线综合视频| 日韩国产欧美三级| 久久久午夜电影| 99热精品一区二区| 午夜精品一区二区三区三上悠亚| 欧美zozozo| av成人免费在线观看| 亚洲午夜精品网| 日韩欧美精品在线| eeuss鲁片一区二区三区在线看| 亚洲一区在线观看免费| 精品美女被调教视频大全网站| 成年人午夜久久久| 石原莉奈在线亚洲三区|