📄 abstractlexicalanalysis.java
字号:
/* * 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -