|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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
内の caseCode
code
- 構文木の列returnNow
public void caseAssignTree(AssignTree tree)
STreeVisitor
内の caseAssignTree
tree
- 代入文の構文木public void caseIfTree(IfTree tree)
STreeVisitor
内の caseIfTree
tree
- if文の構文木public void caseWhileTree(WhileTree tree)
STreeVisitor
内の caseWhileTree
tree
- while文の構文木public void caseRepeatTree(RepeatTree tree)
STreeVisitor
内の caseRepeatTree
tree
- repeat文の構文木public void caseCallTree(CallTree tree)
STreeVisitor
内の caseCallTree
tree
- 手続き呼び出しの構文木returnNow
,
caseCode(Code)
,
SystemProc.execute(SystemProcManager, Stack)
public void caseReturnTree(ReturnTree tree)
STreeVisitor
内の caseReturnTree
tree
- return文の構文木returnNow
,
caseCode(Code)
public void caseLocalVarTree(LocalVarTree tree)
STreeVisitor
内の caseLocalVarTree
tree
- 局所変数宣言の構文木public void caseBinExprTree(BinExprTree tree)
STreeVisitor
内の caseBinExprTree
tree
- 二項演算子をもつ式の構文木public void caseUniExprTree(UniExprTree tree)
STreeVisitor
内の caseUniExprTree
tree
- 単項演算子をもつ式の構文木public void caseVarNode(VarNode node)
STreeVisitor
内の caseVarNode
node
- 変数の構文木public void caseNumNode(NumNode node)
STreeVisitor
内の caseNumNode
node
- 数の構文木public void caseCondTree(CondTree tree)
STreeVisitor
内の caseCondTree
tree
- 条件の構文木
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |