|
||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object jp.hishidama.eval.Expression
public abstract class Expression
式クラス.
構文解析木を保持し、演算の評価を実施する。
Rule.parse(String)
フィールドの概要 | |
---|---|
Function |
func
|
EvalLog |
log
|
Operator |
oper
|
Replace |
repl
|
Search |
srch
|
Variable |
var
|
コンストラクタの概要 | |
---|---|
Expression()
|
メソッドの概要 | |
---|---|
abstract Expression |
dup()
複製作成. |
boolean |
equals(Object obj)
オブジェクト比較. |
abstract Object |
eval()
評価実行(Object). |
double |
evalDouble()
評価実行(double). |
int |
evalInt()
評価実行(int). |
long |
evalLong()
評価実行(long). |
int |
hashCode()
ハッシュコード値取得. |
boolean |
isEmpty()
空チェック. |
abstract void |
optimize(Variable var,
Operator oper)
最適化実行(Object). |
static Expression |
parse(String str)
構文解析実行. |
abstract void |
refactorFunc(Refactor ref,
Rule rule)
リファクタリング(関数への変更). |
abstract void |
refactorName(Refactor ref)
リファクタリング(識別子名変更). |
boolean |
same(Expression obj)
オブジェクト比較. |
abstract void |
search(Search srch)
探索実行. |
void |
setEvalLog(EvalLog log)
ログ出力設定. |
void |
setFunction(Function func)
関数群設定. |
void |
setOperator(Operator oper)
演算設定. |
void |
setVariable(Variable var)
変数群設定. |
String |
toString()
|
クラス java.lang.Object から継承されたメソッド |
---|
getClass, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
---|
public Variable var
public Function func
public Operator oper
public EvalLog log
public Search srch
public Replace repl
コンストラクタの詳細 |
---|
public Expression()
メソッドの詳細 |
---|
public static Expression parse(String str)
デフォルトルールで構文解析を行う。
str
- 解析対象文字列
EvalException
- 構文がおかしいときExpRuleFactory.getDefaultRule()
,
Rule.parse(String)
public void setVariable(Variable var)
評価実行の際に 式の中に変数があれば、当メソッドで指定した変数オブジェクトのメソッドが呼ばれる。
var
- 変数オブジェクトevalInt()
,
evalLong()
,
evalDouble()
,
eval()
public void setFunction(Function func)
評価実行の際に 式の中に関数があれば、当メソッドで指定した関数オブジェクトのメソッドが呼ばれる。
func
- 関数オブジェクトevalInt()
,
evalLong()
,
evalDouble()
,
eval()
public void setOperator(Operator oper)
評価実行の際に 式の中に演算(+や-等)があれば、指定した演算オブジェクトのメソッドが呼ばれる。
oper
- 演算オブジェクトeval()
public void setEvalLog(EvalLog log)
評価実行の際に指定したログ出力オブジェクトのメソッドが呼ばれる。
log
- ログ出力オブジェクトeval()
public int evalInt()
当メソッドでは、IntOperator
を使用して演算する。
EvalException
- 演算中にエラーが発生したときsetOperator(Operator)
,
IntOperator
public long evalLong()
当メソッドでは、LongOperator
を使用して演算する。
EvalException
- 演算中にエラーが発生したときsetOperator(Operator)
,
LongOperator
public double evalDouble()
当メソッドでは、DoubleOperator
を使用して演算する。
EvalException
- 演算中にエラーが発生したときsetOperator(Operator)
,
DoubleOperator
public abstract Object eval()
Object型で演算を実施して結果を返す。
演算実行クラスを登録する必要あり。
EvalException
- 演算中にエラーが発生したときsetOperator(Operator)
public abstract void optimize(Variable var, Operator oper)
超簡易最適化を行う。演算は指定されたoperを使って行う。
変数に値が入っている場合、定数と見なし、値に置換する。
var
- 定数として扱う変数群(null可)oper
- 演算実行クラス
EvalException
- 最適化中にエラーが発生したときpublic abstract void search(Search srch)
構文解析木の探索を行う。
全構文解析木について、1つずつ探索インターフェースのメソッドを呼び出す。
srch
- 探索インターフェースSearch.search(AbstractExpression)
public abstract void refactorName(Refactor ref)
変数名/関数名あるいはオブジェクトのフィールド名/メソッド名を変換する。
式の中にオブジェクトのメンバーが存在する場合は、オブジェクトを取得して変更対象のオブジェクトかどうか判定する。
したがって、オブジェクトが在る場合はsetVariable()でオブジェクトの変数を返すようにしておく必要がある。
ref
- リファクタリングインターフェースpublic abstract void refactorFunc(Refactor ref, Rule rule)
変数名あるいはオブジェクトのフィールド名を関数(あるいはメソッド)に変換する。
式の中にオブジェクトのメンバーが存在する場合は、オブジェクトを取得して変更対象のオブジェクトかどうか判定する。
したがって、オブジェクトが在る場合はsetVariable()でオブジェクトの変数を返すようにしておく必要がある。
ref
- リファクタリングインターフェースrule
- 変換時に使用するルールpublic abstract Expression dup()
当インスタンスの複製を作成する。
public boolean equals(Object obj)
演算解析結果が等しいかどうかをチェックする。
演算子の文字列表現の違いは意識しない。
Object
内の equals
obj
- オブジェクト
same(Expression)
public int hashCode()
Object
内の hashCode
public boolean same(Expression obj)
演算子の文字列表現まで含めてオブジェクトが等しいかどうかチェックする。
obj
- 比較対象
equals(Object)
public boolean isEmpty()
解析結果が空かどうかをチェックする。
public String toString()
Object
内の toString
|
||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |