jp.hishidama.eval
クラス Expression

java.lang.Object
  上位を拡張 jp.hishidama.eval.Expression
直系の既知のサブクラス:
ShareExpValue

public abstract class Expression
extends Object

式クラス.

構文解析木を保持し、演算の評価を実施する。

バージョン:
eval16
作成者:
ひしだま
関連項目:
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
 

フィールドの詳細

var

public Variable var

func

public Function func

oper

public Operator oper

log

public EvalLog log

srch

public Search srch

repl

public Replace repl
コンストラクタの詳細

Expression

public Expression()
メソッドの詳細

parse

public static Expression parse(String str)
構文解析実行.

デフォルトルールで構文解析を行う。

パラメータ:
str - 解析対象文字列
戻り値:
構文解析結果
例外:
EvalException - 構文がおかしいとき
関連項目:
ExpRuleFactory.getDefaultRule(), Rule.parse(String)

setVariable

public void setVariable(Variable var)
変数群設定.

評価実行の際に 式の中に変数があれば、当メソッドで指定した変数オブジェクトのメソッドが呼ばれる。

パラメータ:
var - 変数オブジェクト
導入されたバージョン:
2007.02.09
関連項目:
evalInt(), evalLong(), evalDouble(), eval()

setFunction

public void setFunction(Function func)
関数群設定.

評価実行の際に 式の中に関数があれば、当メソッドで指定した関数オブジェクトのメソッドが呼ばれる。

パラメータ:
func - 関数オブジェクト
関連項目:
evalInt(), evalLong(), evalDouble(), eval()

setOperator

public void setOperator(Operator oper)
演算設定.

評価実行の際に 式の中に演算(+や-等)があれば、指定した演算オブジェクトのメソッドが呼ばれる。

パラメータ:
oper - 演算オブジェクト
導入されたバージョン:
2007.02.15
関連項目:
eval()

setEvalLog

public void setEvalLog(EvalLog log)
ログ出力設定.

評価実行の際に指定したログ出力オブジェクトのメソッドが呼ばれる。

パラメータ:
log - ログ出力オブジェクト
導入されたバージョン:
eval16
関連項目:
eval()

evalInt

public int evalInt()
評価実行(int).

当メソッドでは、IntOperatorを使用して演算する。

戻り値:
演算結果
例外:
EvalException - 演算中にエラーが発生したとき
導入されたバージョン:
eval16
関連項目:
setOperator(Operator), IntOperator

evalLong

public long evalLong()
評価実行(long).

当メソッドでは、LongOperatorを使用して演算する。

戻り値:
演算結果
例外:
EvalException - 演算中にエラーが発生したとき
関連項目:
setOperator(Operator), LongOperator

evalDouble

public double evalDouble()
評価実行(double).

当メソッドでは、DoubleOperatorを使用して演算する。

戻り値:
演算結果
例外:
EvalException - 演算中にエラーが発生したとき
関連項目:
setOperator(Operator), DoubleOperator

eval

public abstract Object eval()
評価実行(Object).

Object型で演算を実施して結果を返す。
演算実行クラスを登録する必要あり。

戻り値:
演算結果
例外:
EvalException - 演算中にエラーが発生したとき
導入されたバージョン:
2007.02.15
関連項目:
setOperator(Operator)

optimize

public abstract void optimize(Variable var,
                              Operator oper)
最適化実行(Object).

超簡易最適化を行う。演算は指定されたoperを使って行う。
変数に値が入っている場合、定数と見なし、値に置換する。

パラメータ:
var - 定数として扱う変数群(null可)
oper - 演算実行クラス
例外:
EvalException - 最適化中にエラーが発生したとき
導入されたバージョン:
2007.02.21

search

public abstract void search(Search srch)
探索実行.

構文解析木の探索を行う。
全構文解析木について、1つずつ探索インターフェースのメソッドを呼び出す。

パラメータ:
srch - 探索インターフェース
導入されたバージョン:
2007.02.17
関連項目:
Search.search(AbstractExpression)

refactorName

public abstract void refactorName(Refactor ref)
リファクタリング(識別子名変更).

変数名/関数名あるいはオブジェクトのフィールド名/メソッド名を変換する。

式の中にオブジェクトのメンバーが存在する場合は、オブジェクトを取得して変更対象のオブジェクトかどうか判定する。
したがって、オブジェクトが在る場合はsetVariable()でオブジェクトの変数を返すようにしておく必要がある。

パラメータ:
ref - リファクタリングインターフェース
導入されたバージョン:
2007.02.19

refactorFunc

public abstract void refactorFunc(Refactor ref,
                                  Rule rule)
リファクタリング(関数への変更).

変数名あるいはオブジェクトのフィールド名を関数(あるいはメソッド)に変換する。

式の中にオブジェクトのメンバーが存在する場合は、オブジェクトを取得して変更対象のオブジェクトかどうか判定する。
したがって、オブジェクトが在る場合はsetVariable()でオブジェクトの変数を返すようにしておく必要がある。

パラメータ:
ref - リファクタリングインターフェース
rule - 変換時に使用するルール
導入されたバージョン:
2007.02.20

dup

public abstract Expression dup()
複製作成.

当インスタンスの複製を作成する。

戻り値:
複製
導入されたバージョン:
2007.02.17

equals

public boolean equals(Object obj)
オブジェクト比較.

演算解析結果が等しいかどうかをチェックする。
演算子の文字列表現の違いは意識しない。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - オブジェクト
戻り値:
等しいとき、true
導入されたバージョン:
2007.02.27
関連項目:
same(Expression)

hashCode

public int hashCode()
ハッシュコード値取得.

オーバーライド:
クラス Object 内の hashCode
戻り値:
ハッシュコード値
導入されたバージョン:
2007.02.27

same

public boolean same(Expression obj)
オブジェクト比較.

演算子の文字列表現まで含めてオブジェクトが等しいかどうかチェックする。

パラメータ:
obj - 比較対象
戻り値:
等しいとき、true
導入されたバージョン:
2007.02.27
関連項目:
equals(Object)

isEmpty

public boolean isEmpty()
空チェック.

解析結果が空かどうかをチェックする。

戻り値:
空のとき、true
導入されたバージョン:
2007.03.01

toString

public String toString()
オーバーライド:
クラス Object 内の toString