abstractlexicalanalysis.java

来自「<算法导论>第二版大部分算法实现. 1. 各类排序和顺序统计学相关」· Java 代码 · 共 90 行

JAVA
90
字号
/* * Copyright (C) 2003-2008 Wang Pengcheng <wpc0000@gmail.com> * Permission is granted to copy, distribute and/or modify this * document under the terms of the GNU Free Documentation License, * Version 2.0 or any later version published by the Free Software Foundation; * with no Invariant Sections. * You may obtain a copy of the License at *   http://www.gnu.org/licenses/lgpl.txt *///26 Feb 2008package cn.edu.whu.iss.algorithm.unit10.expression.lexical;/** * The abstract lexical analysis class. *  * @author wpc * @version 0.0.1 */public abstract class AbstractLexicalAnalysis implements LexicalAnalysis {	/**	 * The expression	 */	protected String expression;	/**	 * the constructor	 */	public AbstractLexicalAnalysis() {		expression = "0";	}	/**	 * The constructor	 * 	 * @param expr	 *            the expression will be analysed	 */	public AbstractLexicalAnalysis(String expr) {		this.expression = expr;	}	/**	 * Check the char c is the permited char or not.	 * @param c	 * @return true that can be used	 */	protected boolean isPermitChar(char c) {		for (int i = 0; i < PERMIT_CHAR.length; i++) {			if (c == PERMIT_CHAR[i]) {				return true;			}		}		return false;	}	public String translateBracket(String expr) {		if (expr != null) {			this.expression = expr;			return translateBracket();		}		return expr;	}	/**	 * Translate the supported bracket to the aim.	 * The expression is the object's expression.	 * @return the 	 */	protected String translateBracket() {		if (this.expression != null) {			for (int i = 0; i < SUPPORT_BRACKET.length; i++) {				expression = expression.replaceAll(SUPPORT_BRACKET[i], AIM_BRACKET[i]);			}		}		return this.expression;	}	public String analyseExpr(String expr) {		if(expr==null){			return this.expression;		}else {			this.expression = expr;			return analyseExpr();		}	}		abstract protected String analyseExpr();}

⌨️ 快捷键说明

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