⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commandline.java

📁 很棒的web服务器源代码
💻 JAVA
字号:
// CommandLine.java// $Id: CommandLine.java,v 1.7 2002/02/04 17:28:12 cbournez Exp $// (c) COPYRIGHT MIT and INRIA, 2002.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.tools.offline.command;import java.io.StringReader;import java.io.StreamTokenizer;import java.io.IOException;import java.util.Vector;import org.apache.oro.text.regex.Perl5Matcher;import org.apache.oro.text.regex.Perl5Compiler;import org.apache.oro.text.regex.Pattern;import org.apache.oro.text.regex.MalformedPatternException;/** * <p>The jigshell command line class. */public class CommandLine {	/** static members: jigshell commands syntax */	public static String WHERE = "where";	public static String LIST = "list";	public static String GO = "go" ;	public static String REC = "r" ;	public static String ATTR = "a" ;	public static String UP = ".." ;	public static String NO_OPT = "none" ;	/* private class members */	private String cmd = null ;	private String action = null ;	private String target = null ;	private String option = NO_OPT ;	/** 	 * a Vector to handle elements of a parsed command	 */	protected Vector parsedCmd ;	/* protected static members */	protected static Perl5Matcher pmatcher = new Perl5Matcher() ;	protected static Perl5Compiler pcompiler = new Perl5Compiler() ;	protected static Pattern srPattern  ;   /** 	*  Initialize a CommandLine instance.  	* @param s the command line.	*/	public CommandLine(String s){		try {			cmd = s ;			parsedCmd = new Vector ();			srPattern = pcompiler.compile(			"^s/[\\w|=|\\*|\\-|\\\\/]+?/[\\w|\\-|\\\\/]+/$",						Perl5Compiler.DEFAULT_MASK);		}		catch (org.apache.oro.text.regex.MalformedPatternException ex){			ex.printStackTrace();		}	}   /** 	* Parse a CommandLine instance.  	*/	public void parse() throws CommandParseException {		StringReader r = new StringReader(cmd) ;		StreamTokenizer st = new StreamTokenizer(r);		st.ordinaryChar('.');	//equivalent to (ascii codes):	st.wordChars(33,44)		st.wordChars('!',',');	//equivalent to:	st.wordChars(46,47)		st.wordChars('.','/');		st.wordChars('=','=');	//equivalent to:	st.wordChars(63,64)		st.wordChars('?','@');	//equivalent to:	st.wordChars(91,96)		st.wordChars('[','`');		try {			while (st.nextToken() != st.TT_EOF){				if (st.ttype == st.TT_WORD){					parsedCmd.addElement(new String(st.sval));				}				if (st.ttype == '-'){					parsedCmd.addElement(new String("-"));				}				if (st.ttype == st.TT_NUMBER){				}			}		}		catch (IOException e){			throw new CommandParseException() ;		}		switch (parsedCmd.size()){			case 0:				break;			case 1: // simple command				action = (String)parsedCmd.elementAt(0);				if (action.compareTo(LIST) ==0 ||					action.compareTo(WHERE) == 0){					target = ".*";					}				else {					throw new CommandParseException() ;				}				break;			default : // more than 1 element in the command line				action = (String)parsedCmd.elementAt(0);				if ( isaReplaceAction(action) == true ||					action.compareTo(LIST)==0 ||					action.compareTo(GO)==0){					boolean isOption = false ;					for (int i = 1 ; i < parsedCmd.size() ; i++){						String curWord = (String)parsedCmd.elementAt(i);				//		System.out.println(curWord+"  "+option);						if (isOption){							/* we already met an option modifier, we're 							waiting for an option */							isOption = false ;							if (curWord.compareTo(REC) == 0 										|| curWord.compareTo(ATTR) == 0 										|| curWord.compareTo(REC+ATTR) == 0										|| curWord.compareTo(ATTR+REC) == 0 ){								option = curWord ;							} else {								// unknown option								System.out.println("option discarded "+curWord);							}						} else {								/* beginning of an option (modifier) */							if (curWord.compareTo("-")==0){								isOption = true ;							} else { 								/* we're not waiting for an option so								it's the command target */								target = curWord ;								break ;							}						}					}				}				else {					throw new CommandParseException() ;				}				if (target == null){					throw new CommandParseException() ;				}		}	}	/**	 * Get the command line action	 * @return the string action (should be a jigshell action).	 */	public String getAction(){ 		return (action) ;	}	/**	 * Get the command target 	 * @return the string target (should be a name or regexp).	 */	public String getTarget(){		return (target) ;	}	/**	 * Get the command option 	 * @return the command option ("none" if no option specified in	 * the command line).	 */	public String getOption(){		return (option) ;	}	/* check whether a string is a s/truc/chose/ regexp. */	private boolean isaReplaceAction(String s){						if (pmatcher.matches(s, srPattern)){			return true ;		}		return false ;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -