|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.oklab.compiler.syntaxtree.Node
org.oklab.compiler.syntaxtree.scope.Scope
org.oklab.compiler.nametable.Method
public class Method
メソッドの情報とメソッド内(ブロック内)の実行コードを保持するクラス.
| フィールドの概要 | |
|---|---|
private static int |
ACC_ABSTRACT
|
private static int |
ACC_FINAL
|
private static int |
ACC_NATIVE
|
private static int |
ACC_PRIVATE
|
private static int |
ACC_PROTECTED
|
private static int |
ACC_PUBLIC
|
private static int |
ACC_STATIC
|
private static int |
ACC_STRICT
|
private static int |
ACC_SYNCHRONIZED
|
private Block |
codeInBlock
|
java.lang.String |
descriptorBuffer
メソッドマネージャに登録するための識別子. |
private int |
descriptorIndex
|
private java.lang.String |
filename
|
private int |
nameIndex
|
private int |
referenceIndex
|
private int |
returnType
|
| クラス org.oklab.compiler.syntaxtree.Node から継承されたフィールド |
|---|
parent |
| コンストラクタの概要 | |
|---|---|
Method(int returnType,
java.lang.String methodName,
SourceReader sReader)
メソッドの情報を中間表現で保持する際に、そのメソッドの構文解析も おこなうので、このコンストラクタを生成するときに実行する. |
|
Method(int returnType,
java.lang.String methodName,
java.lang.String descriptor)
メソッドの情報を中間表現で保持する際に利用する.このメソッドは構文解析を行わないため あらかじめ実装してある標準ライブラリの読み込みなどに利用される. |
|
| メソッドの概要 | |
|---|---|
(package private) void |
emitCode(java.io.DataOutputStream classfile)
このメソッド情報をファイルに放つ. |
(package private) int |
getReferenceIndex()
参照先の索引を取得する. |
int |
getReturnType()
戻り値の型を取得する. |
private java.lang.String |
parseParameter(java.lang.String methodName,
SourceReader sReader)
メソッド引数の構文解析. |
protected Expression |
parseRefferenceOrCall(Node node,
java.lang.String curentIdentifer,
SourceReader sReader)
参照か関数呼び出しのどちらであるかを解析する. |
| クラス org.oklab.compiler.syntaxtree.scope.Scope から継承されたメソッド |
|---|
createReference, localVariableCount, putLocalVariable |
| クラス org.oklab.compiler.syntaxtree.Node から継承されたメソッド |
|---|
parseExpression, parseFactor, parseStatement, parseTerm, setParent |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
|---|
private static final int ACC_PUBLIC
private static final int ACC_PRIVATE
private static final int ACC_PROTECTED
private static final int ACC_STATIC
private static final int ACC_FINAL
private static final int ACC_SYNCHRONIZED
private static final int ACC_NATIVE
private static final int ACC_ABSTRACT
private static final int ACC_STRICT
private java.lang.String filename
private int returnType
private int nameIndex
private int referenceIndex
private int descriptorIndex
public java.lang.String descriptorBuffer
private Block codeInBlock
| コンストラクタの詳細 |
|---|
Method(int returnType,
java.lang.String methodName,
java.lang.String descriptor)
throws CompileError
returnType - 戻り値の型.methodName - メソッド名.descriptor - メソッドの詳細情報.
CompileError - 中間表現の保持に失敗した時に発生する.
Method(int returnType,
java.lang.String methodName,
SourceReader sReader)
throws CompileError
returnType - 戻り値の型.methodName - メソッド名.
CompileError - 中間表現の保持に失敗した時に発生する.構文解析に失敗した時に発生する.| メソッドの詳細 |
|---|
public int getReturnType()
Node 内の getReturnTypegetReturnType()int getReferenceIndex()
private java.lang.String parseParameter(java.lang.String methodName,
SourceReader sReader)
throws CompileError
methodName - メソッド名.sReader - ソースコードリーダ.
CompileError - 解析に失敗した時に発生する.
void emitCode(java.io.DataOutputStream classfile)
throws CompileError
MethodManagerが各オブジェクトのemitCodeに出力を
委譲されるので、各クラスはemitCodeメソッドを持つ.
classfile - 出力先ファイル.
CompileError - 出力に失敗した時に発生する.
protected Expression parseRefferenceOrCall(Node node,
java.lang.String curentIdentifer,
SourceReader sReader)
throws CompileError
Node 内の parseRefferenceOrCallnode - 親ノード.curentIdentifer - 識別子.sReader - ソースコードリーダ.
CompileErrorNode.parseRefferenceOrCall(Node, String, SourceReader)
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||