All Packages Class Hierarchy This Package Previous Next Index
java.lang.Object | +----epp.FileSig
注意: このクラスは、 javadoc を作るための便宜的なクラスです。 実際の EPP のソースコード中には存在しません。
FileSignature は、分割コンパイルをサポートために必要となるデータ構造です。 EPP の1つのファイルに対する処理は、 phase1 と phase2 に分かれます。 phase1 は、構文解析パスとマクロ展開パスから成ります。 phase1 は他のファイルに一切依存せずに行なわれます。 そして、 phase1 が終った時点で、そのファイルの FileSignature が確定し、 FileSignature は、ファイルに保存されます。 phase2 は、型チェックパスおよびコード出力パスから成ります。 phase2 では、他のファイルの FileSignature を必要に応じて参照しながら、 型チェックを行なったり、型情報を利用したマクロ展開を行なったりします。
plug-in は、他のファイルから参照可能な、独自の型定義構文を導入する場合、 ここで説明するメソッドのうちのいくつかを拡張する必要があります。
FileSignature は、以下の構造を持つ Tree です。 (プログラムの抽象構文木とは異なる構造になっています。)
FileSignature: (fileSignature (packageDeclaration PackageName) (imports ImportDeclaration*) (typeDeclarationSignatures TypeDeclarationSignature*)) TypeDeclarationSignature: (typeDeclarationSignature Name TypeDeclarationSignatureTree) TypeDeclarationSignatureTree: ClassSignatureTreeClassSignatureTree: ...
public FileSig()
public Tree makeFileSignature()
public Tree normalizeCompilationUnit(Tree tree)
public Tree normalizeTypeDeclaration(Tree tree)
public Tree normalizeClass(Tree tree)
public Tree normalizeMethod(Tree tree)
public void normalizeFields(TreeVec tvec,
Tree tree)
public Tree normalizeParams(Tree tree)
public Tree[] normalizeVariableDeclaratorId(Tree type,
Tree var)
public ClassInfo makeClassInfo(Symbol fullName)
public ClassInfo makeClassInfoFromClass(Class c)
public Tree getFileSignatureFromClass(Class c)
このメソッドは、現在実装されておらず、無条件に null を返します。
public ClassInfo classToClassInfo(Class c)
public ClassInfo makeClassInfoFromFileSignature(Symbol fullName,
Tree sig)
public ClassInfo treeToClassInfo(Tree classSig)
public Hashtable inheritFieldInfo(Type superclassType,
Tree classSig)
public Hashtable inheritMethodInfo(Type superclassType,
Tree classSig)
public boolean doesOverride(MethodInfo m1,
MethodInfo m2)
public Hashtable inheritInnerClassInfo(Type superclassType,
Tree classSig)
public FieldInfo treeToFieldInfo(Tree tree)
public MethodInfo treeToMethodInfo(Tree tree)
public ClassInfo treeToInnerClassInfo(Tree tree)
public Type treeToType(Tree tree)
All Packages Class Hierarchy This Package Previous Next Index