|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
java.lang.Objecttgl.interpreter.Interpreter
public class Interpreter
コンパイラが生成した構文木の列を解釈実行するためのメソッドを提供する。
言語tglの処理系tglcのこの版での実装では、各構文木への処理を行うために
Visitorパターンを採用している。このクラスは、構文木を解釈実行するための
ビジタを実装している。
caseXXXという名前をもつメソッドは、構文木のクラスXXXのインスタンスを
解釈実行するための処理を行う。
| コンストラクタの概要 | |
|---|---|
Interpreter(SystemProcManager procManager)
インタプリタを作成する。 |
|
| メソッドの概要 | |
|---|---|
void |
caseAssignTree(AssignTree tree)
代入文を解釈実行する。 |
void |
caseBinExprTree(BinExprTree tree)
二項演算子をもつ式を評価する。 |
void |
caseCallTree(CallTree tree)
手続きを呼び出すための処理を行う。 |
void |
caseCode(Code code)
構文木の列(中間コード)に含まれる構文木を、列の先頭から順に解釈実行する。 |
void |
caseCondTree(CondTree tree)
条件を評価する。 |
void |
caseIfTree(IfTree tree)
if文を解釈実行する。 |
void |
caseLocalVarTree(LocalVarTree tree)
局所変数のための領域をフレーム中に確保する。 |
void |
caseNumNode(NumNode node)
数をインタプリタがもつスタックの先頭に積む。 |
void |
caseRepeatTree(RepeatTree tree)
repeat文を解釈実行する。 |
void |
caseReturnTree(ReturnTree tree)
手続きから呼び出し側へ戻るための処理を行う。 |
void |
caseUniExprTree(UniExprTree tree)
単項演算子をもつ式を評価する。 |
void |
caseVarNode(VarNode node)
変数から値を取り出す。 |
void |
caseWhileTree(WhileTree tree)
while文を解釈実行する。 |
void |
interpret()
プログラムの解釈実行を行う。 |
void |
setMemory(Memory memory)
中間コード領域、静的データ領域を含むメモリをインタプリタに格納する。 |
void |
setSpeed(int speed)
実行スピードを設定する。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public Interpreter(SystemProcManager procManager)
procManager - システム定義手続きマネジャのインスタンス| メソッドの詳細 |
|---|
public void setMemory(Memory memory)
memory - メモリのインスタンスpublic void setSpeed(int speed)
speed - 実行スピードを設定するためのパラメータpublic void interpret()
public void caseCode(Code code)
STreeVisitor 内の caseCodecode - 構文木の列returnNowpublic void caseAssignTree(AssignTree tree)
STreeVisitor 内の caseAssignTreetree - 代入文の構文木public void caseIfTree(IfTree tree)
STreeVisitor 内の caseIfTreetree - if文の構文木public void caseWhileTree(WhileTree tree)
STreeVisitor 内の caseWhileTreetree - while文の構文木public void caseRepeatTree(RepeatTree tree)
STreeVisitor 内の caseRepeatTreetree - repeat文の構文木public void caseCallTree(CallTree tree)
STreeVisitor 内の caseCallTreetree - 手続き呼び出しの構文木returnNow,
caseCode(Code),
SystemProc.execute(SystemProcManager, Stack)public void caseReturnTree(ReturnTree tree)
STreeVisitor 内の caseReturnTreetree - return文の構文木returnNow,
caseCode(Code)public void caseLocalVarTree(LocalVarTree tree)
STreeVisitor 内の caseLocalVarTreetree - 局所変数宣言の構文木public void caseBinExprTree(BinExprTree tree)
STreeVisitor 内の caseBinExprTreetree - 二項演算子をもつ式の構文木public void caseUniExprTree(UniExprTree tree)
STreeVisitor 内の caseUniExprTreetree - 単項演算子をもつ式の構文木public void caseVarNode(VarNode node)
STreeVisitor 内の caseVarNodenode - 変数の構文木public void caseNumNode(NumNode node)
STreeVisitor 内の caseNumNodenode - 数の構文木public void caseCondTree(CondTree tree)
STreeVisitor 内の caseCondTreetree - 条件の構文木
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||