l3cover.translator
クラス TranslatorBase

java.lang.Object
  拡張l3cover.translator.TranslatorBase

public abstract class TranslatorBase
extends java.lang.Object

変換器の基底クラス

作成者:
Toshihiro YOSHINO

コンストラクタの概要
protected TranslatorBase(MachineParameter machineParameter)
          コンストラクタ
 
メソッドの概要
protected static Command createAssignment(Expression lhs, Expression rhs)
          代入文を作成する
protected static int downcastInt(Expression expr)
          Expressionint にダウンキャストする
protected static int downcastInt(int intValue)
          int をダウンキャスト(?)
protected static LeftValue downcastLValue(Expression expr)
          ExpressionLeftValue にダウンキャストする
protected static LeftValue downcastLValue(LeftValue lvalue)
          LeftValue をダウンキャスト(?)
protected  TranslationContext getContext(java.util.Map map)
          マッチ結果の変数束縛を、translateOperand を用いて TranslationContext に変換する
 MachineParameter getMachineParameter()
          抽象機械パラメータを取得する
 void performTranslation(ProgramGenerator output, EventQueue input)
          プログラム変換を行う
protected  void translateData(ProgramGenerator output, Value value, int size)
          データを変換する
abstract  void translateInstruction(ProgramGenerator output, EventQueue input, Term term)
          命令のマッチング
abstract  Expression translateOperand(Term term)
          オペランドのマッチング
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

TranslatorBase

protected TranslatorBase(MachineParameter machineParameter)
コンストラクタ

パラメータ:
machineParameter - 抽象機械パラメータ
メソッドの詳細

getMachineParameter

public MachineParameter getMachineParameter()
抽象機械パラメータを取得する

戻り値:
抽象機械パラメータ

translateOperand

public abstract Expression translateOperand(Term term)
                                     throws TranslationException
オペランドのマッチング

パラメータ:
term - 項
戻り値:
対応する式
例外:
TranslationException - 変換エラーが発生した場合

translateInstruction

public abstract void translateInstruction(ProgramGenerator output,
                                          EventQueue input,
                                          Term term)
                                   throws TranslationException
命令のマッチング

パラメータ:
output - 出力先
term - 項
例外:
TranslationException - 変換エラーが発生した場合

translateData

protected void translateData(ProgramGenerator output,
                             Value value,
                             int size)
                      throws TranslationException
データを変換する

パラメータ:
output - 出力先
value - 変換する値
size - バイト幅
例外:
TranslationException - 変換エラーが発生した場合

performTranslation

public void performTranslation(ProgramGenerator output,
                               EventQueue input)
                        throws TranslationException
プログラム変換を行う

パラメータ:
output - 出力先
input - 入力元
例外:
TranslationException - 変換エラーが発生した場合

downcastLValue

protected static LeftValue downcastLValue(LeftValue lvalue)
LeftValue をダウンキャスト(?)する

パラメータ:
lvalue - 変換する値
戻り値:
変換後の値

downcastLValue

protected static LeftValue downcastLValue(Expression expr)
                                   throws TranslationException
ExpressionLeftValue にダウンキャストする

パラメータ:
expr - 変換する式
戻り値:
LeftValue
例外:
TranslationException - 式が LeftValue でない場合

downcastInt

protected static int downcastInt(int intValue)
int をダウンキャスト(?)する

パラメータ:
intValue - 変換する値
戻り値:
変換後の値

downcastInt

protected static int downcastInt(Expression expr)
                          throws TranslationException
Expressionint にダウンキャストする

パラメータ:
expr - 変換する式
戻り値:
整数
例外:
TranslationException - 式が整数リテラルでない場合

createAssignment

protected static Command createAssignment(Expression lhs,
                                          Expression rhs)
                                   throws TranslationException
代入文を作成する

パラメータ:
lhs - 左辺
rhs - 右辺
戻り値:
例外:
TranslationException - 左辺が代入可能な式でない場合

getContext

protected TranslationContext getContext(java.util.Map map)
                                 throws TranslationException
マッチ結果の変数束縛を、translateOperand を用いて TranslationContext に変換する

パラメータ:
map - 変数束縛
戻り値:
変換コンテクスト
例外:
TranslationException - 変換エラーが発生した場合
関連項目:
translateOperand(Term)