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)normalizeFields
public void normalizeFields(TreeVec tvec, Tree tree)normalizeParams
public Tree normalizeParams(Tree tree)normalizeVariableDeclaratorId
public Tree[] normalizeVariableDeclaratorId(Tree type, Tree var)makeClassInfo
public ClassInfo makeClassInfo(Symbol fullName)
public ClassInfo makeClassInfoFromClass(Class c)getFileSignatureFromClass
public Tree getFileSignatureFromClass(Class c)
このメソッドは、現在実装されておらず、無条件に null を返します。
public ClassInfo classToClassInfo(Class c)makeClassInfoFromFileSignature
public ClassInfo makeClassInfoFromFileSignature(Symbol fullName, Tree sig)treeToClassInfo
public ClassInfo treeToClassInfo(Tree classSig)
public Hashtable inheritFieldInfo(Type superclassType, Tree classSig)inheritMethodInfo
public Hashtable inheritMethodInfo(Type superclassType, Tree classSig)doesOverride
public boolean doesOverride(MethodInfo m1, MethodInfo m2)inheritInnerClassInfo
public Hashtable inheritInnerClassInfo(Type superclassType, Tree classSig)treeToFieldInfo
public FieldInfo treeToFieldInfo(Tree tree)treeToMethodInfo
public MethodInfo treeToMethodInfo(Tree tree)treeToInnerClassInfo
public ClassInfo treeToInnerClassInfo(Tree tree)treeToType
public Type treeToType(Tree tree)
All Packages Class Hierarchy This Package Previous Next Index