All Packages Class Hierarchy This Package Previous Next Index
Class epp.FileSig
java.lang.Object
|
+----epp.FileSig
- public class FileSig
- extends Object
EPP プリプロセッサが持つメソッドのうち
ファイル FileSig.java で定義されるメソッドは、
主に FileSignature に関係するメソッドです。.
注意: このクラスは、 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:
ClassSignatureTree
ClassSignatureTree:
...
- See Also:
- FileSignatreTable, Type
-
FileSig()
-
-
classToClassInfo(Class)
-
-
doesOverride(MethodInfo, MethodInfo)
-
-
getFileSignatureFromClass(Class)
- class file 中に encode された FileSignature 情報がもしあれば、それを返します。.
-
inheritFieldInfo(Type, Tree)
-
-
inheritInnerClassInfo(Type, Tree)
-
-
inheritMethodInfo(Type, Tree)
-
-
makeClassInfo(Symbol)
- クラス名の完全限定名シンボルから、それに対応する ClassInfo を作って返します。.
-
makeClassInfoFromClass(Class)
-
-
makeClassInfoFromFileSignature(Symbol, Tree)
-
-
makeFileSignature()
- マクロ展開パス後の抽象構文木(self!tree)から、
FileSignature を作って返します。.
-
normalizeClass(Tree)
- class か interface の抽象構文木を ClassSignatureTree に変換します。.
-
normalizeCompilationUnit(Tree)
- CompilationUnit の抽象構文木を FileSignature に変換します。.
-
normalizeFields(TreeVec, Tree)
-
-
normalizeMethod(Tree)
-
-
normalizeParams(Tree)
-
-
normalizeTypeDeclaration(Tree)
- TypeDeclaration の抽象構文木を TypeDeclarationSignatureTree に
変換します。.
-
normalizeVariableDeclaratorId(Tree, Tree)
-
-
treeToClassInfo(Tree)
- ClassSignatureTree から、 ClassInfo を作って返します。.
-
treeToFieldInfo(Tree)
-
-
treeToInnerClassInfo(Tree)
-
-
treeToMethodInfo(Tree)
-
-
treeToType(Tree)
- FileSignature 中に現れる型名を、 Type に変換するメソッドです。.
FileSig
public FileSig()
makeFileSignature
public Tree makeFileSignature()
- マクロ展開パス後の抽象構文木(self!tree)から、
FileSignature を作って返します。.
このメソッドは、 EPP main routine から、 phase1 の最後に呼ばれます。
- See Also:
- Epp
normalizeCompilationUnit
public Tree normalizeCompilationUnit(Tree tree)
- CompilationUnit の抽象構文木を FileSignature に変換します。.
normalizeTypeDeclaration
public Tree normalizeTypeDeclaration(Tree tree)
- TypeDeclaration の抽象構文木を TypeDeclarationSignatureTree に
変換します。.
normalizeClass
public Tree normalizeClass(Tree tree)
- class か interface の抽象構文木を ClassSignatureTree に変換します。.
このメソッドは、 normalizeTypeDeclaration から呼び出されます。
- See Also:
- normalizeTypeDeclaration
normalizeMethod
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)
- クラス名の完全限定名シンボルから、それに対応する ClassInfo を作って返します。.
makeClassInfoFromClass
public ClassInfo makeClassInfoFromClass(Class c)
getFileSignatureFromClass
public Tree getFileSignatureFromClass(Class c)
- class file 中に encode された FileSignature 情報がもしあれば、それを返します。.
なければ、 null を返します。
このメソッドは、現在実装されておらず、無条件に null を返します。
classToClassInfo
public ClassInfo classToClassInfo(Class c)
makeClassInfoFromFileSignature
public ClassInfo makeClassInfoFromFileSignature(Symbol fullName,
Tree sig)
treeToClassInfo
public ClassInfo treeToClassInfo(Tree classSig)
- ClassSignatureTree から、 ClassInfo を作って返します。.
inheritFieldInfo
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)
- FileSignature 中に現れる型名を、 Type に変換するメソッドです。.
treeToClassInfo などから呼び出されます。
TypeChecker からは、呼び出してはいけません。
All Packages Class Hierarchy This Package Previous Next Index